VTOL - Documentación de Webservices
1. Introducción
1.1. Propósito y audiencia
Especificar los webservices de tipo REST implementados en VTOL, en los cuales se definen todos los métodos utilizados para la creación, modificación, búsqueda y eliminación de Compañía, Sucursal, Caja y Terminales. Los webservices de VTOL que se deberán exponer a los clientes para realizar el intercambio de información necesaria. El documento está dirigido al equipo de producto VTOL.
1.2. Vocabulario común y acrónimos
1.3. Referencias
Referencia | Documento |
---|---|
Catálogo de requerimientos de los Webservices de VTOL |
2. Webservices de VTOL
Los webservices que se expondrán a los clientes (internos y externos) serán de tipo REST, intercambiando información con sus consumidores a través del envío de información en formato JSON. A continuación, se definen todos los servicios web disponibles en VTOL:
2.1 Webservice Obtener Token - Método POST
API de VTOL:
- Utilizar el método POST y la API genérica es: https://<pathServer>:<port>/director/oauth/token
Donde: <pathServer> corresponde al path del server en el que se encuentra corriendo el servidor Director Server, por ejemplo: “localhost”. El <port> corresponde al puerto en el que estará escuchando el servidor para el consumo del webService.
Ejemplo: https://127.0.0.1:8100/director/oauth/token
Importante
Obtención token: La API de Director Server para cualquier cliente está securitizada bajo token OAuth. Este token se obtiene utilizando Usuario y Clave.
Requerimiento Cliente - Director Server "Ejemplo Postman":
- En la solapa “Body” seleccionar la opción “x-www-form-urlencoded” para ingresar la siguiente información:
- username: vtol-service-user
- password: Sts1288MY2017
Descripción y referencia de los parámetros:
M = Obligatorio
O = Opcional
Solapa | Parámetro | Value | Tipo de dato | Referencia |
---|---|---|---|---|
Body | username | vtol-service-user | string | M |
password | Sts1288MY2017 | string | M | |
companyCode | SMB | string | O |
Importante:
El campo “username” y "password" ya estan definidos en el sistema de Director Server cuando se realiza la instalación del mismo.
Por último, se envía el requerimiento haciendo clic en el botón SEND para obtener la respuesta con el token.
Respuesta Director Server - Cliente
Se obtiene la respuesta con el token que será utilizado para gestionar los demás servicios:
Descripción y referencia de los parámetros del body de la respuesta:
M = Obligatorio
O = Opcional
D = Deprecado
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Se puede enviar siempre y cuando la compañia ya este creada en el sistema. | string | O |
access_token | Se necesita para realizar la autenticación de las solicitudes a los servicios web de Director Server. | string | M |
refresh_token | El "refresh_token" es un token de seguridad utilizado para obtener un nuevo "access_token" después de que el actual haya expirado. Cuando un usuario se autentica en un servicio web, se le proporciona un "access_token" que se utiliza para autorizar sus solicitudes al servicio web. Este "access_token" tiene un tiempo de vida útil limitado por motivos de seguridad. Cuando el "access_token" expira, el usuario ya no puede acceder al servicio web hasta que obtiene un nuevo "access_token". En lugar de hacer que el usuario inicie sesión de nuevo para obtener un nuevo "access_token", el servicio web puede proporcionar al usuario un "refresh_token" después de que se haya autenticado correctamente. El "refresh_token" tiene una vida útil más larga que el "access_token" y se puede utilizar para obtener uno nuevo después de que el "access_token" haya expirado. Esto significa que el usuario no tiene que volver a ingresar sus credenciales cada vez que el "access_token" expire. El "refresh_token" se debe almacenar de forma segura, ya que permite que alguien obtenga un nuevo "access_token" sin necesidad de ingresar credenciales. Si el "refresh_token" cae en manos equivocadas, un atacante podría obtener acceso no autorizado a los recursos protegidos por el servicio web. | string | D |
expires_in | Expira el token cada xxxxxxx | number | M |
scope | Alcance del token. | string | M |
expUnit | Unidad de medida de expiración del token. | M |
Respuesta HTTP correcta Director Server - Cliente
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Informa el acces_token para utilizar en los servicios. |
Respuesta HTTP de Error Director Server - Cliente
El token se tiene que actualizar, ya que expira. El cual se informa mediante el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
401 | No Autorizado | Access token does not exists. |
2.2 Webservices de Compañía
2.1.1 Método POST - "Crear compañía"
El servicio addCompany permitirá crear una compañía y también un usuario administrador con todos los permisos (excepto el acceso al menú de seguridad de la consola de VTOL), el cual estará asociado a la nueva compañía, la información del administrador (usuario y contraseña) se deberá enviar en el body request del servicio.
API de VTOL: https://<webVtol>/register/addCompany
Ejemplo: https://localhost:8787/register/addCompany
Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio
O = Opcional
A continuación, se especifican los parámetros que deberá enviar el cliente a VTOL al consumir la API "Crear Compañía" utilizando el método POST:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyName | Nombre de la compañía | string | M |
companyCode | Código de la compañía | string | M |
countryId | Id del País al que pertenecerá la compañía que se desea crear. Para Argentina es el id 1. | number | M |
adminUser | Nombre del usuario Administrador que se genera al realizar la creación de la compañía. Si el usuario ya existe entonces se realiza la creación de la compañía y se le asigna al adminUser enviado en el parámetro. Nota: al ingresar a la consola de Vtol con este usuario se deberá visualizar la compañía creada. | string | M |
adminPass | Contraseña del usuario Administrador. Con la contraseña enviada en el parámetro adminPass se puede ingresar a la consola de Vtol. No solicita cambio de contraseña. Nota: si el usuario que se envía en el adminUser ya existe, entonces no se muestra la password en el body response. | string | M |
relateUsers | Usuario existente que se desea relacionar con la nueva compañía. Si se necesita agregar más de un usuario en el parámetro "relateUsers" se deben separar por coma. Por ejemplo: "relateUsers": "Usuario1, Usuario2" | string | O |
Importante:
En el parámetro "relateUsers" del servicio addCompany se deberán enviar los usuarios que fueron creados previamente desde el addUser con el fin de relacionarlos a la nueva compañía. El parámetro "relateUsers" del body es opcional, es decir, si no se envía un valor en dicho campo no se asocia ningún usuario de los que ya están creados en la base de datos. La definición del servicio addUser se encuentra disponible en: 23V_WEBSERVICESVTOL_RE_013_Gestionar usuario - Napse - P&D - Linx Share
Ejemplo en Postman:
Respuesta VTOL - Cliente
Referencia de parámetros:
M = Obligatorio
O = Opcional
Parámetro | Sub-parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|---|
Company | companyName | Nombre de la compañía | string | M |
companyCode | Código de la compañía | string | M | |
countryId | Id del País al que pertenecerá la compañía que se desea crear. Para Argentina es el id 1. | number | M | |
UserAdmin | user | Nombre del usuario Administrador. | string | M |
password | Contraseña del usuario Administrador. Con la contraseña generada en el servicio se puede ingresar a consola de VTOL. Importante: la password se visualiza en la respuesta del body solo si el usuario administrador es creado por primera vez. Si el usuario que se envía en el adminUser del request ya existe, no se muestra la password en el body response. | string | O |
Add Company Response Message:
|
Ejemplo en Postman:
Respuesta HTTP correcta VTOL - Cliente
Si se crea correctamente la compañía solicitada por el cliente, se debe enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | La petición se ha procesado correctamente y como resultado se ha creado una nueva compañía. |
Respuesta HTTP de Error VTOL:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID company name | El company name debe ser único. Company Name already exists |
INVALID company code | El company code debe ser único. Company Code already exists | |
INVALID relateUsers | El users debe existir y estar habilitado. Esta validación se realiza solo si se envía el parámetro relateUsers en el request, ya que es un parámetro opcional. | |
INVALID country Id | El countryId es nulo o inválido. CountryId is null or invalid | |
INVALID adminUser | El adminUser debe tener mínimo 5 caracteres. Wrong name length - Min:5 | |
INVALID adminPass | Se realizan las siguientes validaciones en el parámetro:
| |
INVALID fields | Los campos countryId, company name, company code, adminUser y adminPass deben ser obligatorios. |
2.2.2 Método GET - "Buscar Compañía"
API de VTOL: https://<webVtol>/register/getCompany
Ejemplo enviando el parámetro companyName: https://localhost:8787/register/getCompany?companyCode=VTP
Requerimiento Cliente - VTOL
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Buscar compañía" utilizando el método GET:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía. | string | M |
companyName | Nombre de la compañía. | string | M |
Importante:
En el servicio getCompany se puede buscar tanto por el parámetro "companyCode" como por el "companyName", pero si se envían ambos parámetros en el request, entonces la información deberá estar correcta, es decir, debe coincidir con lo que está cargado en la base de datos para dicha compañía. Si no se envía ningún parámetro en la sección "params" del request, entonces el servicio deberá responder con una lista con todas las compañías que existen en la base de datos.
Ejemplo en Postman:
Respuesta VTOL - Cliente:
Según el parámetro del mensaje de requerimiento, se envían los siguientes parámetros de respuesta:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
id | Id de la compañía | number | M |
companyName | Nombre de la compañía. | string | M |
companyCode | Código de la compañía. | string | M |
countryAbbreviation | Abreviación del país al que pertenece la compañía. AR: Argentina. | string | M |
enabled | Indica si la compañía se encuentra habilitada (true) o deshabilitada (false) | true/ false | M |
Ejemplo en Postman:
Respuesta HTTP correcta VTOL - Cliente
Si la búsqueda de la compañía requerida por el cliente se realiza de forma correcta, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que la búsqueda de la compañía se realizó correctamente según el parámetro que se envía en el requerimiento. |
Response Message en Postman:
|
Respuesta HTTP de Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID companyCode | El companyCode debe existir. Company not found. |
INVALID companyName | El companyName debe existir. Company not found. |
2.2.3 Método PUT - "Modificar Compañía"
Ejemplo: https://localhost:8787/register/modifyCompany?refresh_token=0bcd62bda0185b6ea72c3bc33b8fa4b6
Requerimiento Cliente - VTOL
A continuación, se especifican los parámetros que el cliente le deberá enviar a VTOL al consumir la API para "Modificar compañía" utilizando el método PUT:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyName | Nombre de la compañía. Nota: es obligatorio si no se envía el companyCode. | string | M |
companyCode | Código de la compañía. Nota: es obligatorio si no se envía el companyName. | string | M |
countryId | Id del País al que pertenecerá la compañía que se desea crear. Para Argentina es el id 1. | number | M |
newCompanyName | Indica el nuevo nombre de la compañía | string | O |
newCompanyCode | Indica el nuevo código de la compañía | string | O |
enabled | Indica el estado de la compañía. Si la compañía se encuentra habilitada (true) o deshabilitada (false). Nota: si se envía el parámetro en el mensaje de requerimiento, entonces se realiza la actualización solicitada, de lo contrario, no se aplican cambios. | true/ false | O |
Nota:
Los parámetros newCompanyName y newCompanyCode se definen como opcionales. Si se envían ambos parámetros en el body entonces se modifica el nombre y el código de la compañía. De lo contrario, no se aplican cambios. Para el caso del parámetro "enabled" que también es opcional, en caso de enviarlo en el body se puede habilitar o deshabilitar la compañía, según el valor que tome dicho campo.
Ejemplo en Postman:
Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyName | Nombre de la compañía | string | M |
companyCode | Código de la compañía | string | M |
countryId | Id del País al que pertenecerá la compañía que se desea crear. Para Argentina es el id 1. | number | M |
newCompanyName | Nombre de la compañía | string | O |
newCompanyCode | Código de la compañía | string | O |
enabled | Indica el estado de la compañía. Si la compañía se encuentra habilitada (true) o deshabilitada (false). | true/ false | O |
Ejemplo log VTOL:
Respuesta HTTP correcta VTOL - Cliente
Si se actualiza correctamente la información de la compañía requerida por el cliente, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que los datos de la compañía han sido modificados correctamente. |
Respuesta HTTP Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID newCompanyName |
|
INVALID newCompanyCode |
| |
INVALID countryId | El countryId es obligatorio. countryId es null or invalid |
2.2.4 Método DELETE - "Eliminar Compañía"
API de VTOL: https://<webVtol>/register/deleteCompany?companyCode=<companyCode>
Ejemplo: https://localhost:8787/register/deleteCompany?companyCode=OMVBQ1
Requerimiento Cliente - VTOL
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Eliminar compañía" utilizando el método DELETE:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía | string | M |
Respuesta VTOL - Cliente
Si los parámetros de requerimiento son correctos, entonces VTOL deberá enviar el siguiente mensaje de respuesta: Se eliminó correctamente la compañía requerida.
Respuesta HTTP correcta VTOL - Cliente
Si se elimina correctamente la compañía solicitada por el cliente, se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. La compañía ha sido eliminada. |
Respuesta HTTP Error VTOL - Cliente:
HTTP Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID CompanyCode |
|
2.2.5 Detalles técnicos
- Tabla country: en donde se visualizan todos los países con su respectivo id a los cuales puede pertenecer una compañía
- Tabla userCompanies: para poder visualizar en la consola de VTOL todas las compañías creadas desde el servicio AddCompany, es necesario asignar el único usuario (userId: 1) a las compañías que existen, mediante la base de datos. INSERT INTO UserCompanies (userId, companyId) VALUES(1, 3); tiene los usuarios que existen.
- Tabla rs_user: tiene los usuarios creados.
2.3 Webservices de Sucursal
2.3.1 Método POST - "Crear Sucursal"
API de VTOL: https://<webVtol>/register/addStore
Ejemplo: https://localhost:8787/register/addStore
Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio
O = Opcional
A continuación, se especifican los parámetros que deberá enviar el cliente a VTOL al consumir la API "Creación de Sucursal" utilizando el método POST:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía a la que pertenecerá la sucursal | string | M |
storeCode | Código de la Sucursal | string | M |
storeName | Nombre de la Sucursal | string | M |
storeIdentifier | Identificador de la Sucursal | string | O |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual. | true/ false | O |
relateUsers | Usuario que se desea relacionar con la nueva sucursal. Si se desea agregar más de un usuario en el parámetro "users", se deben separar por coma. Por ejemplo: "users": "Usuario1, Usuario2". Importante: al realizar la creación de la sucursal se deberá enviar en este parámetro el usuario administrador creado desde el addCompany para que pueda visualizar la nueva sucursal a la que pertenece la compañía. | string | M |
Ejemplo en Postman:
Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía a la que pertenecerá la sucursal | string | M |
storeCode | Código de la Sucursal | string | M |
storeName | Nombre de la Sucursal | string | M |
storeIdentifier | Identificador de la Sucursal | string | O |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual. | true/ false | O |
relateUsers | Usuario que se relaciona con la nueva sucursal. Si se desea agregar más de un usuario en el parámetro "relateUsers", se deben separar por coma. Por ejemplo: "relateUsers": "Usuario1, Usuario2" | string | M |
Respuesta HTTP correcta de VTOL - Cliente
Si VTOL crea correctamente la sucursal solicitada por el cliente deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | La petición se ha procesado correctamente y como resultado se ha creado una nueva sucursal. The store: storeName was added. |
Respuesta HTTP de Error VTOL:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID storeName | El storeName ya existe. StoreName already exist: |
INVALID storeCode | El storeCode ya existe. No se puede crear la nueva sucursal con el store code ingresado, ya que existe una sucursal con el mismo código. StoreCode already exist: | |
INVALID companyCode | El companyCode debe existir. Company not found. | |
INVALID fields | Los campos company name, store name y store code son obligatorios. CompanyCode, StoreName, StoreCode and relateUsers are required. |
2.3.2 Método GET - "Buscar Sucursal"
- API de VTOL: https://<webVtol>/register/getStore
Ejemplo enviando el parámetro storeCode: https://localhost:8787/register/getStore?storeCode=0000000002
E
Requerimiento Cliente - VTOL
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Buscar sucursal" utilizando el método GET:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
storeCode | Código único de la Sucursal | number | M |
Ejemplo en Postman:
Importante:
Para el servicio del método GET "Buscar sucursal" se puede enviar en el parámetro "storeCode" el código de la sucursal que se desea buscar (para esto se deberá completar el campo Value y seleccionar el checkbox que se muestra resaltado en rojo en la imagen). En caso de no seleccionar dicho parámetro, el servicio deberá responder una lista con todas las sucursales que existen en la base de datos.
Respuesta VTOL - Cliente:
Según los parámetros del mensaje de requerimiento, VTOL deberá enviar los siguientes parámetros de respuesta:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
storeId | Id de la sucursal | number | M |
storeName | Nombre de la Sucursal | string | M |
storeCode | Código de la Sucursal | number | M |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual | true/ false | O |
id | Id de la compañía | number | M |
companyName | Nombre de la compañía | string | M |
countryId | Id del País al que pertenece la compañía. Para Argentina es el id 1. | number | M |
enabled | Indica si la compañía se encuentra habilitada (true) o deshabilitada (false) | true/ false | M |
Respuesta HTTP correcta VTOL - Cliente
Si la búsqueda requerida por el cliente se realiza de forma correcta, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. |
Respuesta HTTP de Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID_store code |
|
2.3.3 Método PUT - "Modificar Sucursal"
API de VTOL: https://<webVtol>/register/modifyStore
Ejemplo: https://localhost:8787/register/modifyStore
Requerimiento Cliente - VTOL
A continuación, se especifican los parámetros que el cliente le deberá enviar a VTOL al consumir la API para "Modificar una sucursal" utilizando el método PUT:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
storeCode | Indica el código actual de la Sucursal. Al enviar este campo se indica el código del local actual al cual se le necesita realizar alguna modificación. | string | M |
newStoreName | Indica el nuevo nombre de la Sucursal | string | O |
newStoreCode | Indica el nuevo código de la Sucursal | string | O |
newIdentifier | Indica el nuevo Identificador | string | O |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual. Si no es virtual toma el valor de 0. | true/ false | O |
Nota:
Los parámetros newStoreName, newStoreCode y newIdentifier son definidos como opcionales, debido a que, si no se cambia el valor de estos parámetros, se deberá enviar la información que se encuentra guardada en el servicio.
Ejemplo en Postman:
En este caso se está modificando el storeCode 6 que es el actual por el valor 3 en el campo newStoreCode.
Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
storeCode | Código de sucursal. Luego de enviar la solicitud de modificación y se realiza correctamente, este no es el código actual, si no el anterior. | string | M |
newStoreName | Nuevo nombre de la Sucursal | string | M |
newStoreCode | Nuevo código de sucursal | number | M |
newIdentifier | Nuevo Identificador | string | M |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual | true/ false | M |
{ "storeCode": "6", "newStoreName": "STOREPRUEBA3", "newStoreCode": "3", "virtual": "false", "newIdentifier": "sp3" }
Respuesta HTTP correcta de VTOL - Cliente
Si se actualiza correctamente la información de la sucursal requerida por el cliente, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que los datos de la sucursal han sido modificados correctamente. |
Respuesta HTTP Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID storeCode |
|
INVALID newStoreCode |
|
2.3.4 Método DELETE - "Eliminar Sucursal"
Ejemplo: https://localhost:8787/register/deleteStore?storeCode=6
Requerimiento Cliente - VTOL
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Eliminar sucursal" utilizando el método DELETE:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
storeCode | Código de la Sucursal | number | M |
Respuesta VTOL - Cliente
Si el parámetro del requerimiento es correcto, entonces VTOL deberá enviar el siguiente mensaje de respuesta: Se eliminó correctamente la sucursal requerida.
Respuesta HTTP correcta VTOL - Cliente
Si VTOL elimina correctamente la sucursal solicitada por el cliente se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que la sucursal ha sido eliminada correctamente. The store: was deleted. |
Respuesta HTTP Error VTOL - Cliente:
HTTP Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID_storeCode |
|
2.4 Webservices de Cajas
2.4.1 Método POST - "Crear Caja"
API POST: https://<webVtol>/register/addNode
Ejemplo: https://localhost:8787/register/addNode
- Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio
O = Opciona
A continuación, se especifican los parámetros que deberá enviar el cliente a VTOL al consumir la API/REST "Alta de cajas" utilizando el método POST:
Parámetro | Descripción | Tipo de dato | Referencia |
companyCode | Código de la compañía a la que pertenecerá la caja | string | M |
storeCode | Código de la Sucursal a la que pertenecerá la caja | string | M |
nodeFrom | Número de la caja | number | M |
nodeTo | Para agregar solo una caja, no se debe enviar el parámetro nodeTo o enviarlo con el mismo valor que nodeFrom. | number | O |
Ejemplo en postman:
- Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
companyCode | Código de la compañía a la que pertenecerá la caja | string | M |
storeCode | Código de la Sucursal a la que pertenecerá la caja | string | M |
nodeFrom | Número de la caja | number | M |
nodeTo | Para agregar solo una caja, no enviar el parámetro nodeTo o enviarlo con el mismo valor que nodeFrom. | number | O |
- Respuesta HTTP correcta VTOL - Cliente
Si VTOL crea correctamente la caja solicitada por el cliente deberá enviar en la respuesta el siguiente código:
HTTP Code | HTTP Description | Descripción |
200 | OK | La petición se ha procesado y como resultado se ha creado la(s) caja(s). Por ejemplo: The nodes: 1 - 4 from store: 2606PRUEBA was add with success. |
- Respuesta HTTP de Error VTOL - Cliente
Código | Tipo | Descripción |
400 BAD_REQUEST | INVALID nodeFrom |
|
INVALID nodeTo |
| |
INVALID companyCode |
| |
INVALID storeCode |
|
2.4.2 Método GET - "Buscar Caja"
Ejemplo: https://localhost:8787/register/getNode?companyCode=VTP
- Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio
O = Opcional
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Obtener caja" utilizando el método GET:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía a la que pertenece la caja | string | M |
storeCode | Código de la Sucursal a la que pertenece la caja | string | O |
node | Código de caja | number | O |
enabled | Habilitado o deshabilitado | true/ false | O |
- Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la compañía a la que pertenece la sucursal | string | M |
companyName | Nombre de la compañía a la que pertenece la sucursal | string | M |
storeName | Nombre de la Sucursal a la que pertenece la caja | string | M |
storeCode | Código de la Sucursal a la que pertenece la caja | number | M |
storeId | Id de la Sucursal a la que pertenece la caja | number | M |
node | Código de la caja | number | M |
nodeId | Id de la caja | number | M |
enabled |
| true/ false | M |
virtual | Corresponde a una sucursal cargada en VTOL que puede ser física o virtual | true/ false | M |
GETNode Response Message Postman:
{ |
Ejemplo en Postman enviando solo el parámetro companyCode:
- Respuesta HTTP correcta VTOL - Cliente
Si se encuentra de forma correcta la información de la caja, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. |
Respuesta HTTP de Error VTOL - Cliente
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID companyCode |
|
2.4.3 Método PUT - "Modificar Caja"
API de VTOL: https://<webVtol>/register/modifyNode
Ejemplo: https://localhost:8787/register/modifyNode
- Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio.
O = Opcional.
A continuación, se especifican los parámetros que le tiene que enviar el cliente a VTOL al consumir la API para "Modificar una caja" utilizando el método PUT:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
node | Código de la caja actual que se desea modificar. | number | M |
newNode | Nuevo código de la caja. Nota: si es enviado el parámetro “newNode”, entonces se modifica el código de la caja. | number | O |
storeCode | Código de la sucursal actual que se desea modificar. | alfanumérico | M |
newStoreCode | Nuevo código de la Sucursal. Se envía un storeCode que se encuentre en la base de datos, es decir que esté previamente cargado. Nota: si se envía el parámetro "newStoreCode", entonces se modifica el local al que pertenece la caja. | alfanumérico | O |
enabled | Si es enviado el parámetro “enabled” puede habilitar o deshabilitar la caja según el valor que tome:
| true/ false | O |
Ejemplo en Postman:
En el siguiente ejemplo solo se cambia el node 1 por el 5
En el siguiente ejemplo se cambia el node 6 del local 2606PRUEBA al local 2706PRUEBA, es decir, se modifica el local de la caja/node.
Respuesta VTOL - Cliente
Si el parámetro del requerimiento es enviando correctamente, entonces se deberá recibir el mensaje de respuesta informando que la caja (node) solicitada fue modificada.
Respuesta HTTP correcta VTOL - Cliente
Si la modificación se realizó correctamente se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Ejemplo: The node: 0000000003 was edited with success. |
- Respuesta HTTP Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID node |
|
INVALID newNode |
| |
INVALID fields | El node y storeCode son obligatorios. node and storeCode are required |
2.4.4 Método DELETE - "Eliminar Caja"
Requerimiento Cliente - VTOL
A continuación, se especifica el parámetro que le deberá enviar el cliente a VTOL para consumir la API "Eliminar caja" utilizando el método DELETE:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
node | Código de la caja | number | M |
storeCode | Código del Local | number | M |
- Respuesta VTOL - Cliente
Si el parámetro del requerimiento es correcto, entonces VTOL deberá enviar el siguiente mensaje de respuesta: Se eliminó correctamente la caja.
Respuesta HTTP correcta VTOL - Cliente
Si VTOL elimina correctamente la caja solicitada por el cliente deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que la caja ha sido eliminada correctamente. Ejemplo: The POS for storeCode: 0000122112 node: 0000000003 was deleted. |
Respuesta HTTP Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID node |
|
INVALID storeCode | El storeCode es obligatorio. Param -storeCode- is required |
2.4.5 Detalles técnicos
- Al realizar el cambio del nombre en el servicio editNode por modifyNode se ejecutó el siguiente script en la base de datos de la instalación de VTOL:
INSERT INTO RequestMap (description, config_attribute, url, category) VALUES('Servicio de modificación de cajas en VTOL', 'Operativo, Admin', 'register/modifyNode', 'SERVICE');
La prueba interna de VTOL para validar los cambios del servicio modifyNode se realizó aplicando el parche: rs-vtol-module-cd-ar-ha-service-3.8.0.15-SNAPSHOT-120423.jar
2.5 Webservices de la configuración por Local de VTOL - Terminales
El terminal es una identificación lógica de una caja física, según una definición de lote, desde el punto de vista de un determinado centro autorizador. Por lo cual, una caja física puede poseer uno o más números de terminales, según las definiciones de lote que existan. Cada Terminal se corresponde con una única definición de lote y posee un identificador propio (número de serie de terminal).
A continuación, se especifican los siguientes servicios tipo REST disponibles para Terminales:
2.5.1 Método POST – “Crear Terminal”:
API de VTOL: https://servidor:puerto/register/addTerminal
Ejemplo: https://localhost:8787/register/addTerminal
Requerimiento Cliente - VTOL
Referencia de parámetros:
M = Obligatorio
O = Opcional
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local | String | M |
storeCode | Código del Local | Number | M |
lotDefinitionId | Es el agrupamiento de uno o más opciones de pago para una determinada tarjeta. Nota: el parámetro debe estar previamente creado mediante otro servicio de VTOL. | Number | M |
serialFrom | Número de Terminal que se desea agregar. Solo se guardan la cantidad de terminales que se puedan asignar según las cajas que estén disponibles. Indica desde que valor de la serie del terminal se desea configurar. Por ejemplo, si se desean configurar desde la 1 a la 5, se debe enviar en este campo el valor 1. Para agregar una sola terminal el valor de este parámetro debe ser igual al del serialTo. | Number | M |
serialTo | Si se desea agregar un rango de terminales se deberá enviar en este parámetro el valor hasta el número de terminal que se desea agregar. Por ejemplo, si se desean configurar 5 terminales, se debe enviar en este campo el valor 5. Para agregar solo una terminal, se deberá enviar en el parámetro serialTo el mismo valor ingresado en el parámetro serialFrom. | Number | M |
newPinMKP | Posición llave maestra PIN, el dato es numérico de un dígito. | Number | O |
newDataMK | Posición llave maestra DATA, el dato es numérico de un dígito. | Number | O |
Importante:
Si se eliminan los parámetros "newPinMKP" y "newDataMK" del body, se asigna en la consola de VTOL por defecto lo siguiente:
- En el campo "newPinMKP":
- El valor de 1 si el canal es PrismaMC o Visa.
- El valor de 0 si el canal es Posnet,
- En blanco si el canal es FiservQr y Amex.
- En el campo "newDataMK" el campo vacío para todos los canales.
- Ejemplo en Postman con todos los campos en el body:
- Ejemplo en postman, en donde los campos opcionales no se envían en el body:
Respuesta VTOL - Cliente
Referencia de parámetros:
M = Obligatorio
O = Opcional
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local | String | M |
storeCode | Código del Local | Number | M |
lotDefinitionId | Id de la definición de lote. Es el agrupamiento de uno o más opciones de pago para una determinada tarjeta. Nota: el parámetro debe estar previamente creado mediante otro servicio de VTOL. | Number | M |
serialFrom | Número de Terminal que se desea agregar. Solo se guardan la cantidad de terminales que se puedan asignar según las cajas que estén disponibles. Indica desde que valor de la serie del terminal se desea configurar. Por ejemplo, si se desean configurar desde la 1 a la 5, se debe enviar en este campo el valor 1. Para agregar una sola terminal el valor de este parámetro debe ser igual al del serialTo. | Number | M |
serialTo | Si se desea agregar un rango de terminales se deberá enviar el valor hasta de la serie de terminal, Por ejemplo, si se desean configurar 5 terminales, se debe enviar en este campo el valor 5. Para agregar solo una terminal, se deberá enviar en el parámetro serialTo el mismo valor ingresado en el parámetro serialFrom. | Number | M |
newPinMKP | Posición llave maestra PIN, el dato es numérico de un dígito. | Number | O |
newDataMK | Posición llave maestra DATA, el dato es numérico de un dígito. | Number | O |
{ "companyCode": "OMVBQ1", "storeCode": "123", "lotDefinitionId": "3", "serialFrom": "1", "serialTo": "12", "newPinMKP": "1", "newDataMKP": "0" }
- Respuesta HTTP correcta de VTOL - Cliente
Si se realiza correctamente el alta del Terminal solicitada por el cliente, se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Código | HTTP Descripción | Descripción |
---|---|---|
201 | Created | La petición se ha procesado correctamente y como resultado se ha creado una nueva terminal. |
- Respuesta HTTP de Error VTOL
Código | Tipo | Descripción |
400 BAD_REQUEST | INVALID fields | Company code, store code y Lot Definition id son obligatorios. |
INVALID company code |
| |
INVALID store code |
| |
INVALID SerialFrom y SerialTo |
|
2.5.2 Método GET - "Buscar Terminal"
API de VTOL: https://servidor:puerto/register/getTerminal?companyCode=<companyCode>&pendingConfiguration=<false>
Requerimiento Cliente - VTOL
A continuación, se especifican los parámetros que le deberá enviar el cliente a VTOL para consumir la API "Buscar Terminal" utilizando el método GET, este servicio tiene Body:
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local | String | M |
storeCode | Código del Local | Number | O |
serialNumber | Corresponde al número de serie del terminal que se desea buscar. El terminal es una identificación lógica de una caja física, según una definición de lote. | String | O |
lotDefinitionId | Id de la definición de Lote. Agrupamiento de uno o más opciones de pago para una determinada tarjeta. Se pueden buscar todas las opciones de definición de lote cargadas y también solo las pendientes de configuración. | Number | O |
pendingConfiguration | El parámetro "Pending configuration" puede tomar los siguientes valores:
| True/ False | M |
Nota:
En el servicio getTerminal se envían de forma obligatoria los parámetros "companyCode" y "pendingConfiguration". Con respecto al parámetro "serialNumber" se encuentra definido como opcional, es decir, que si no se envía dicho parámetro se deberá mostrar una lista de todas las Terminales que existen con su respectivo código de caja.
Ejemplo del body en postman:
- Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local | String | M |
storeCode | Código del Local | String | M |
lotDefinitionId | Id de la definición de lote. Es el agrupamiento de uno o más opciones de pago para una determinada tarjeta. | Number | M |
channelId | Vía lógica por la cual VTOL se comunica con el centro autorizador y envía a este las transacciones pertenecientes a ciertas tarjetas. Cada canal (definición de lote) maneja su propio número de lote | String | M |
node | Código de la caja | Number | M |
serialNumber | Número del terminal | String | M |
newPinMKP | Posición llave maestra PIN, el dato es numérico de un dígito. La posición de la llave maestra depende de la definición de lote y es utilizada por EMVKIT para saber de qué posición obtener el PIN dentro del pinpad. | Number | M |
newDataMK | Posición llave maestra DATA, el dato es numérico de un dígito. | Number | M |
{ "companyCode": "OMVBQ1", "storeCode": "0000000123", "lotDefinitionId": 2, "channelId": 17, "node": "0000000001", "serialNumber": "00000001", "pinMKP": "1", "dataMKP": "0" },
- Respuesta HTTP correcta VTOL - Cliente
Si VTOL encuentra de forma correcta la información del “terminal” asociado a la caja, entonces se deberá enviar en la respuesta HTTP el siguiente código:
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. |
- Respuesta HTTP de Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID company code | El company code es obligatorio y debe existir. |
INVALID store code |
| |
INVALID lot Definition Id |
| |
INVALID Pending configuration | El campo Pending configuration es obligatorio. | |
INVALID serial number |
|
2.5.3 Método PUT - "Modificar Terminal"
- API de VTOL: https://servidor:puerto/register/modifyTerminal
Ejemplo: https://localhost:8787/register/modifyTerminal
Requerimiento Cliente - VTOL
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea eliminar. | String | M |
storeCode | Código del Local. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea actualizar. | Number | M |
node | Código de la caja | Number | M |
lotDefinitionId | Definición de lote. Agrupamiento de uno o más opciones de pago para una determinada tarjeta. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea eliminar. | Number | M |
newSerialNumber | Nuevo número de terminal. Nota: el parámetro es obligatorio en el body solo si la terminal no está configurada, de lo contrario, es opcional. | String | M/ O |
newPinMKP | Posición llave maestra PIN, el dato es numérico de un dígito. | Number | O |
newDataMK | Posición llave maestra DATA, el dato es numérico de un dígito. | Number | O |
Ejemplo en Postman:
Importante:
Los parámetros newPinMKP y newDataMK son definidos como opcionales. Por lo cual, si no se envían en el body no se actualizan los campos y de igual forma la respuesta es 200 OK. En caso de enviarlos se modifica el valor de los parámetros.
El parámetro newSerialNumber:
- Se define como Obligatorio solo si la terminal no está configurada, debido a que si no se envía el campo para este caso aparece en la respuesta el error "500 Internal Server Error".
- Se define como Opcional si la terminal se encuentra previamente configurada, ya que si no se envía muestra en la respuesta "200 OK" porque existe y no es requerido.
- Respuesta VTOL - Cliente
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía a la que pertenece el Local. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea eliminar. | String | M |
storeCode | Código del Local. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea actualizar. | Number | M |
node | Código de la caja | Number | M |
lotDefinitionId | Definición de lote. Agrupamiento de uno o más opciones de pago para una determinada tarjeta. Este parámetro no se actualiza, pero se envía en el mensaje para relacionar con la terminal que se desea eliminar. | String | M |
newSerialNumber | Nuevo número de terminal. | String | M/ O |
newPinMKP | Posición llave maestra PIN, el dato es numérico de un dígito. | Number | O |
newDataMK | Posición llave maestra DATA, el dato es numérico de un dígito. | Number | O |
{ "companyCode": "OMVBQ1", "storeCode": 123, "node": 6, "lotDefinitionId": 2, "newSerialNumber": "16", "newPinMKP": 1, "newDataMK": 0 }
- Respuesta HTTP correcta de VTOL - Cliente
HTTP Code | HTTP Description | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que los datos han sido actualizados correctamente. |
- Respuesta HTTP Error VTOL - Cliente
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID fields | CompanyCode, storeCode, lotDefinitionId y node deben existir en la base de datos. |
INVALID storeCode | Debe pertenecer a la compañía. | |
INVALID lotDefinitionId | Debe pertenecer a la compañía. | |
INVALID newSerialNumber |
| |
INVALID newPinMKP | La posición llave maestra para DATA debe ser numérica de un digito. | |
INVALID newDataMK | La posición llave maestra PIN debe ser numérica de un digito. |
2.5.4 Método DELETE - "Eliminar Terminal"
- API de VTOL: https://<webVtol>/register/deleteTerminal
Requerimiento Cliente - VTOL
Parámetro | Descripción | Tipo de dato | Referencia |
---|---|---|---|
companyCode | Código de la Compañía | string | M |
storeCode | Código del Local | number | M |
node | Código de la caja,
| number | M |
lotDefinitionId | Definición de Lote que se refiere l agrupamiento de uno o más opciones de pago para una determinada tarjeta. | number | M |
serialNumber | Número de terminal que se desea eliminar. Nota: el parámetro "serianNumber" es obligatorio si no se envía en el body el node. | string | M |
Importante:
En el body se puede enviar como obligatorio el parámetro "node" o "serialNumber", es suficiente con que se envíe uno de estos dos para poder eliminar la terminal. Por lo cual:
- El parámetro "node" es obligatorio si no se envía en el body el serialNumber.
- El parámetro "serianNumber" es obligatorio si no se envía en el body el node.
Ejemplo en Postman:
- Respuesta VTOL - Cliente
Si los parámetros de requerimiento son correctos, entonces VTOL deberá enviar el siguiente mensaje de respuesta que se eliminó correctamente la terminal solicitada.
Actualmente informa lo siguiente:
- Respuesta HTTP correcta de VTOL - Cliente
Si VTOL elimina correctamente la Terminal solicitada por el cliente deberá enviar en la respuesta HTTP el siguiente código:
HTTP Código | HTTP Descripción | Descripción |
---|---|---|
200 | OK | Respuesta correcta. Indica que la Terminal ha sido eliminada correctamente |
- Respuesta HTTP Error VTOL - Cliente:
Código | Tipo | Descripción |
---|---|---|
400 BAD_REQUEST | INVALID número de serie de terminal | El número de serie de terminal no se encuentra asignado a una caja |
INVALID lotDefinitionId | El lotDefinitionId es obligatorio. | |
INVALID companyCode | El companyCode es obligatorio. | |
500 Internal Server Error | Bad arguments in json Body |