
Napse CRM Cash - Guía de Integración
Servicio de autenticación para obtener el token.
Servicio de seguridad que permite a un cliente ser autorizado para utilizar el restos de los servicios del sistema.
Este servicio requiere que se brinden las claves de acceso (un id y un secret), que serán proporcionados en forma privada.
Retornará un token, el cual es requerido al invocar los servicios de negocio.
Clique aqui para expandir...
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/auth/login |
---|
POST - REQUEST
BODY:
- clientId - código de cliente proporcionado
- clientSecret - código secreto de clave proporcionado.
EJEMPLO:
{
"clientId" : "vcn5keiiw0zf" ,
"clientSecret" : "g23n2tlt3fmap0ymaosv"
}
|
RESPONSE OK
Elemento | Tipo | Detalle |
---|
token | String | Token de seguridad devuelto por el sistema. |
expiresIn | Number | Tiempo de expiración del token medido en unidad de expiración. |
expUnit | String | Unidad de expiración. |
Ejemplo:
{
"token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNWU5NDczZGU4YTk2NDI5MzlkMzVkYzhiIn0sImlhdCI6MTU5NTk0NzkyOSwiZXhwIjoxNTk1OTUxNTI5fQ.yrMsmYgyPtii59moYgujKE96ZeFNhHuZnwt3OeE59fM" ,
"expiresIn" : 3600000 ,
"expUnit" : "milliseconds"
} |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 0: operación exitosa.
- 2002: clientId o clientSecret inválidos, inhabilitados o vencidos.
- 9999: error desconocido, error de la aplicación.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "User not found" } |
Servicio: Creación de un cupón
Este servicio se utiliza para crear un cupón en PROMO basado en la identificación del cliente.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/coupon/create |
---|
PRE-REQUISITO
Para el uso del servicio es necesario informar en el header de la petición el token obtenido a través del servicio "login" con el parámetro x-access-token
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
- couponType - codigo del tipo de cupón existente en PROMO.
- customerCode - Código de identificación del cliente, normalmente es el numero de documento, pero podría ser que se identifique de otras formas.
- couponAmount - Si el tipo de cupón es de tipo calculado (con un monto asociado) se deberá indicar el monto. Si, en caso de no corresponder a un cupón calculado, informar 0.
- couponCode - OPCIONAL. Permite definir externamente el código de identificación del cupón. Si no es informado, creará uno de acuerdo a reglas definidas utilizando el número de identificación del cliente.
EJEMPLO:
{ "couponType": "0002", "customerCode": "24314537", "couponAmount": 0, "couponCode": "" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | Valor "0" Operación exitosa. |
message | Objeto JSON | Código de cupón creado. |
Ejemplo:
{ "ack": 0, "message": "000224314537000001" } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | - 2002: token inválido, no existente o expirado.
- 2003: el tipo de cupón no existe.
- 2004: el código de identificación del cliente no existe.
- 2005: el tipo de cupón es calculado y no se informa monto.
- 9999: error desconocido, error de la aplicación.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Cambio de cliente asignado a un cupón
Este servicio permite cambiar la titularidad de un cupón, hacia un nuevo cliente
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/coupon/change |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
- couponCode- Código de cupón (debe existir en PROMO).
- couponType - Código de identificación del cupón.
- newCustomerCode - Código de cliente al cual cambiará el cupón.
EJEMPLO:
{ "couponCode": "000224314537000001", "couponType": "0002", "newCustomerCode": "24314537" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
message | String | Valor "OK" |
Ejemplo:
{ "ack": 0, "message": "Ok", } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 2103: el código de cupón no existe.
- 2104: el código de cliente por el cual se desea cambiar no existe.
- 9999: error desconocido, error de la aplicación.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Jornada de Compra - Cashback - Diagrama Conceptual

Diagrama de secuencia técnico
Paso a paso del uso de servicios:
- El cliente realiza una compra
- El punto de venta o pinpad, registra el celular del cliente, para ello, invoca el servicio de registro de teléfono móvil.
- El punto de venta, valida el token informado con el cliente, invocando el servicio de validación de token.
- Al finalizar la venta, se envia un ticket simplificado al servicio de envío de ticket.
- Aqui, podemos utilizar toda la potencia de PROMO para definir las reglas de emisión de cupones, puntos y otros elementos de fidelidad.
- Incluso se pueden contemplar otras acciones como el envío de encuestas.
- Se envía al cliente por SMS el cupón ganado.
- Al restar X días para el vencimiento, se le recuerda al cliente que el cupón se encuentra próximo a vencer.
- El cliente, concurre a la tienda a canjear su beneficio y existen 2 opciones:
- Se invoca al servicio que indica el cupón que mas descuento le da al cliente
- Se valida un cupón determinado, ingresando un número. Para ello, se invoca al servicio de validación de cupón.
Beneficios por sobre otras soluciones:
- Integración muy sencilla, con mínimo esfuerzo.
- Puede utilizarse toda la capacidad de PROMO, solución lider del mercado para definir reglas de otorgamiento del beneficio.
- Pueden ejecutarse programas de cashback, segmentos por compras / objetivos, referencia, etc.
- El cliente no debe presentar obligatoriamente su voucher, PROMO puede decidir cual es su mejor beneficio.
Servicio: Registro de teléfono móvil
Este servicio permite registrar el teléfono móvil de un cliente para validarlo contra un token.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/customer/cellphone |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
- identification - Codigo de identificador del cliente.
- cellphone - Número de celular, con formato PAIS+AREA+CELULAR . Ejemplo: +5491136637487.
EJEMPLO:
{ "identification": "24314537", "cellphone": "+5491136637487" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
message | String | Valor "OK" |
Ejemplo:
{ "ack": 0, "message": "Ok", } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 3102: Debe informar identificatión y celular.
- 9999: error desconocido, error de la aplicación.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Validación de token enviado como validación del número de teléfono
Este servicio permite validar un token enviado hacia un teléfono móvil, para validar su autencidad.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/customer/token |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
- cellphone - Número de celular, con formato PAIS+AREA+CELULAR . Ejemplo: +5491136637487.
- token: Número de 5 cifras informado por el celular.
Ejemplo:
{ "cellphone": "+5491136637487", "token": "89785" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
message | String | Valor "OK" |
Ejemplo:
{ "ack": 0, "message": "Ok", } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 4102: Debe informar celular y token.
- 4103: El celular enviado no se registró previamente.
- 4104: El token informado es inválido.
- 9999: error desconocido, error de la aplicación.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Envío de Ticket
Este servicio permite enviar un ticket, luego de la venta, lo que permitirá ejecutar acciones tales como envío de cupones, encuestas, y otro tipo de estrategias configuradas.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/sales/ticket |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
CAMPOS
- order_id - un identificador único de la transacción.
- delivery_date - fecha de la orden o del envío en caso de ser un canal virtual.
- client - Información del consumidor.
- email - Email del cliente.
- first_name - Primer nombre
- last_name - Apellido
- phone_number - Teléfono con formato universal PAIS+AREA+TELEFONO
- items - Lista de productos
- id - Identificador único del producto en la tienda.
- price - Precio unitario del producto.
- qty - Cantidad llevada
- name - Nombre del producto.
BODY
{ "order_id": "123ABC", "delivery_date": "21/01/2021", "client": { "email": "[email protected]", "first_name": "Martin", "last_name": "Malievac", "phone_number": "+5491136637487" }, "items": [ { "id": "15493Abc", "price": 100.00, "qty": 2.0, "name": "Coca Cola" }, { "id": "15493Cde", "price": 50.00, "qty": 1.0, "name": "Pepsi" } ] }
|
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
message | String | Valor "OK" |
Ejemplo:
{ "ack": 0, "message": "Ok", } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
|
message | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Validación de cupones asociados al cliente.
Este servicio permite obtener los cupones válidos del cliente, con su importe asociado y fecha de vencimiento, ordenados por fecha de vencimiento mas cercana.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/customer/coupons |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
Elemento | Descripción | Tipo de dato | Requerido |
---|
identification | Codigo de identificador del cliente | String | Si |
Ejemplo:
{ "identification": "24314537" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
result: | Array | Detalle de cupones asociados al cliente. |
message | String | Detalle de cupones con su vencimiento e importe. |
Ejemplo:
{ "ack": 0, "result": [ { "id": "123456789", "type" : 22222, "amount": 1000, "expiration_date": "23/12/2022" }, { "id": "88888888", "amount": 2000, "type" : 22222, "expiration_date": "23/12/2023" } ], "message": "OK" } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 3102: Debe informar identificatión y celular.
- 9999: error desconocido, error de la aplicación.
|
result | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Validación de un cupón.
Este servicio permite obtener sobre un cupón informado, la validez del mismo.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/coupon/validate |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
Elemento | Descripción | Tipo de dato | Requerido |
---|
couponCode | Código del cupón | String | Si |
Ejemplo:
{ "couponCode": "0024314537" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
result: | Object | |
message | String | Detalle de cupones con su vencimiento e importe. |
Ejemplo:
{ "ack": 0, "result": { "id": "0024314537", "amount": 1000, "valid": true, "expiration_date": "23/12/2023" }, "message": "OK" } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 3102: Debe informar identificatión y celular.
- 9999: error desconocido, error de la aplicación.
|
result | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Servicio: Acreditar puntos en tarjeta fidelidad.
Este servicio permite actualizar los puntos de una tarjeta de fidelidad.
Clique aqui para expandir...
Para el uso del servicio es necesario informar un token que se obtiene a través del servicio "login".
Es un método REST basado en el formato JSON. Ejemplo:
[post] http://[dirección-ip]:[puerto]/loyalty-card/points |
---|
POST - REQUEST
Elemento | Valor |
---|
x-access-token | Token obtenido a través del servicio "Authenticate" |
Ejemplo:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJOYXBzZSIsImRhdGEiOnsiX2lkIjoiNjA1ZGQyNTZjZGE0YzhhNzZkODhhNDFiIn0sImlhdCI6MTYyMTQzMTU5OCwiZXhwIjoxNjIxNTE3OTk4fQ.4gxltyla4zKODtM9w0a4-y2_EMtrkIULB9446RSVpKE |
BODY
Elemento | Descripción | Tipo de dato | Requerido |
---|
code | Número de tarjeta | String | Si |
type | Código del tipo de tarjeta | String | Si |
amount | Valor a quitar o agregar | Numerico | Si |
companyCode | Código de la compañia | String | Si |
Ejemplo:
{ "code": "0004000200112233", "type":"001", "amount": 125, "companyCode":"napse" } |
RESPONSE OK
Elemento | Tipo | Detalle |
---|
ack | Number | |
result: | Object | |
message | String | Detalle de cupones con su vencimiento e importe. |
Ejemplo:
{ "ack": 0, "result": { "id": "0024314537", }, "message": "OK" } |
RESPONSE ERROR
Elemento | Tipo | Detalle |
---|
ack | Number | Código de error. Siendo los valores posibles: - 2002: token inválido, no existente o expirado.
- 4001: No se informo la tarjeta
- 4002: No se informo el tipo de tarjeta
- 4003: No se informo el amount
- 9999: error desconocido, error de la aplicación.
|
result | String | Detalle del tipo del error. |
Ejemplo:
{ "ack": 2002, "message": "Token inválido, no existente o expirado" } |
Tareas
- Flujo de registro de celular y validación de token.
- Flujo de acumulación de cashback.
- Flujo de alertas configurables.
- Informes
- Setup simplificado.
- Plantilla para definición de programas de cashback en forma simple.
- Integración con soluciones de envío de SMS.