{ "swagger": "2.0", "info": { "title": "HBC - Usuario.", "description": "Servicio REST para todo lo referido a la entidad Usuario.", "version": "1.0.0" }, "host": "api.redlink.com.ar", "schemes": [ "https" ], "basePath": "/v1/usuario", "produces": [ "application/json" ], "definitions": { "DatosBasicos": { "type": "object", "properties": { "nombre": { "type": "string", "description": "Nombre del propietario de la cuenta de HB." }, "apellido": { "type": "string", "description": "Nombre del propietario de la cuenta de HB." }, "contacto": { "$ref": "#/definitions/Contacto" }, "domicilio": { "$ref": "#/definitions/Domicilio" }, "fechaNacimiento": { "type": "string", "description": "Fecha de nacimiento." }, "dni": { "type": "string", "description": "Número de documento." }, "cuil": { "type": "string", "description": "CUIL." } } }, "Contacto": { "type": "object", "properties": { "telefono": { "$ref": "#/definitions/Telefono" } } }, "Domicilio": { "type": "object", "properties": { "calle": { "type": "string", "description": "Calle." }, "numero": { "type": "string", "description": "Número de casa." }, "piso": { "type": "string", "description": "Piso." }, "departamento": { "type": "string", "description": "Unidad." }, "localidad": { "type": "string", "description": "Localidad." }, "provincia": { "type": "string", "description": "Provincia." } } }, "Telefono": { "type": "object", "properties": { "tipo": { "type": "string", "description": "Tipo de número telefónico." }, "numero": { "type": "string", "description": "Número telefónico." } } }, "DatosPersonales": { "type": "object", "properties": { "basicos": { "$ref": "#/definitions/DatosBasicos" } } }, "DatosPersonalesModificar": { "type": "object", "properties": { "basicos": { "$ref": "#/definitions/DatosBasicos" } } }, "SolicitudDesbloqueoBlanqueoCrear": { "type": "object", "properties": { "mail": { "type": "string", "description": "Cuenta de mail asociada al usuario de HB." } } }, "RespuestaSolicitudDesbloqueoBlanqueo": { "type": "object", "properties": { "codigo": { "type": "string", "description": "Código asociado al mensaje devuelto." }, "descripcion": { "type": "string", "description": "Texto que detalla la acción realizada respecto a la solicitud." } } }, "RespuestaValidacionDesbloqueoBlanqueo": { "type": "object", "properties": { "hash": { "type": "string", "description": "Nuevo hash para el envío de las respuestas de seguridad." }, "preguntas": { "type": "array", "items": { "$ref": "#/definitions/Pregunta" } } } }, "Pregunta": { "type": "object", "description": "Representación de una pregunta de seguridad.", "properties": { "id": { "type": "string", "description": "Identificador de la pregunta, generado al azar." }, "detalle": { "type": "string", "description": "Detalle de la pregunta." } } }, "RespuestaPreguntasDesbloqueo": { "type": "object", "description": "Respuesta para la validación de preguntas de seguridad y hash en el circuito de desbloqueo, como paso final.", "properties": { "codigo": { "type": "string", "description": "Código de respuesta." }, "descripcion": { "type": "string", "description": "Descripción del código de respuesta." } } }, "RespuestaBlanqueo": { "type": "object", "properties": { "codigo": { "type": "string", "description": "Código de respuesta." }, "descripcion": { "type": "string", "description": "Descripción del código de respuesta." } } }, "Respuestas": { "type": "array", "items": { "$ref": "#/definitions/Respuesta" } }, "Respuesta": { "type": "object", "properties": { "id": { "type": "string", "description": "Identificador de la pregunta." }, "valor": { "type": "string", "description": "Valor de la respuesta informada por el usuario." } } }, "RespuestaPreguntasBlanqueo": { "type": "object", "description": "Respuesta para la validación de preguntas de seguridad y hash en el circuito de blanqueo.", "properties": { "codigo": { "type": "string", "description": "Código de respuesta." }, "descripcion": { "type": "string", "description": "Descripción del código de respuesta." }, "hash": { "type": "string", "description": "Hash para el paso final del proceso de blanqueo." } } }, "NuevaClave": { "type": "string", "description": "Nueva clave a setearse luego del proceso de blanqueo." }, "AvatarObtener": { "type": "object", "properties": { "mail": { "type": "string", "description": "Mail del usuario." } } }, "Avatar": { "type": "object", "description": "Representación de un avatar.", "properties": { "id": { "type": "string", "description": "Identificador del avatar." }, "img": { "type": "string", "format": "base64", "description": "Imagen del avatar encodeada en Base64." } } }, "AvatarModificar": { "type": "object", "description": "Payload para la modificación de un avatar.", "properties": { "id": { "type": "string", "description": "ID del avatar seleccionado." } } }, "Error": { "type": "object", "required": [ "codigo" ], "properties": { "codigo": { "type": "string", "description": "Código del error." }, "descripcion": { "type": "string", "description": "Descripción asociada al código de error." } } } }, "parameters": { "datosPersonalesModificar": { "name": "datosPersonalesModificar", "in": "body", "description": "Payload para la modificación de datos personales.", "schema": { "$ref": "#/definitions/DatosPersonalesModificar" } }, "solicitudDesbloqueoBlanqueoCrear": { "name": "solicitudDesbloqueoBlanqueoCrear", "in": "body", "description": "Payload para la solicitud de un desbloqueo/blanqueo de cuenta.", "schema": { "$ref": "#/definitions/SolicitudDesbloqueoBlanqueoCrear" } }, "hashValidacion": { "name": "hashValidacion", "in": "path", "description": "Hash obtenido para realizar la validación del mail asociado a la cuenta de HB.", "type": "string", "required": true }, "respuestas": { "name": "respuestas", "in": "body", "description": "Payload que contiene las respuestas a las preguntas de seguridad.", "schema": { "$ref": "#/definitions/Respuestas" } }, "nuevaClave": { "name": "nuevaClave", "in": "body", "description": "Payload para el paso de cambio de clave en el proceso de blanqueo.", "schema": { "$ref": "#/definitions/NuevaClave" } }, "avatarObtener": { "name": "avatarObtener", "in": "body", "description": "Payload para la obtención del avatar de usuario.", "schema": { "$ref": "#/definitions/AvatarObtener" } }, "avatarModificar": { "name": "avatarModificar", "in": "body", "description": "Payload para la modificación del avatar de usuario.", "schema": { "$ref": "#/definitions/AvatarModificar" } } }, "responses": { "400": { "description": "Error en la solicitud.", "schema": { "$ref": "#/definitions/Error" } } }, "paths": { "/desbloqueo/solicitud/": { "post": { "summary": "Genera una solicitud de desbloqueo de una cuenta de Home Banking.", "operationId": "solicitudDesbloqueo", "description": "Permite la generación de una solicitud de desbloqueo de una cuenta de HB. \n", "parameters": [ { "$ref": "#/parameters/solicitudDesbloqueoBlanqueoCrear" } ], "responses": { "200": { "description": "Confirmación de la solicitud de desbloqueo.", "schema": { "$ref": "#/definitions/RespuestaSolicitudDesbloqueoBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/desbloqueo/validacion/${hashValidacion}": { "post": { "operationId": "validacionDesbloqueo", "summary": "Realiza la validación de la solicitud de desbloqueo de una cuenta de Home Banking.", "description": "Permite la validación del hash obtenido vía mail para la obtención de las preguntas secretas y un nuevo hash para el procedimiento.", "parameters": [ { "$ref": "#/parameters/hashValidacion" } ], "responses": { "200": { "description": "Confirmación de la validación de solicitud para el desbloqueo de cuenta y devolución del siguiente desafío.", "schema": { "$ref": "#/definitions/RespuestaValidacionDesbloqueoBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/desbloqueo/respuestas/${hashValidacion}": { "post": { "operationId": "validacionRespuestas", "summary": "Realiza la validación de las respuestas de seguridad.", "description": "Permite la validación de respuestas de seguridad conjunto al hash recibido.", "parameters": [ { "$ref": "#/parameters/hashValidacion" }, { "$ref": "#/parameters/respuestas" } ], "responses": { "200": { "description": "Confirmación de la validación de las respuestas de seguridad y el hash.", "schema": { "$ref": "#/definitions/RespuestaPreguntasDesbloqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/blanqueo/solicitud": { "post": { "operationId": "solicitudBlanqueo", "summary": "Solicitud de blanqueo de contraseña de una cuenta de Home Banking.", "description": "Permite la realización de una solicitud de blanqueo de contraseña de una cuenta de Home Banking. ", "parameters": [ { "$ref": "#/parameters/solicitudDesbloqueoBlanqueoCrear" } ], "responses": { "200": { "description": "Confirmación de la solicitud de blanqueo.", "schema": { "$ref": "#/definitions/RespuestaSolicitudDesbloqueoBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/blanqueo/validacion/${hashValidacion}/": { "post": { "operationId": "validacionBlanqueo", "summary": "Validación de la solicitud de blanqueo de contraseña.", "description": "Permite validar el hash recibido en la solicitud de blanqueo para la obtención de las preguntas de seguridad.", "parameters": [ { "$ref": "#/parameters/hashValidacion" } ], "responses": { "200": { "description": "Confirmación de la validación de solicitud para el blanqueo de cuenta y devolución del siguiente desafío.", "schema": { "$ref": "#/definitions/RespuestaValidacionDesbloqueoBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/blanqueo/respuestas/${hashValidacion}/": { "post": { "operationId": "validacionRespuestasBlanqueo", "summary": "Realiza la validación de las respuestas de seguridad.", "description": "Permite la validación de las respuestas de seguridad conjunto al hash recibido.", "parameters": [ { "$ref": "#/parameters/hashValidacion" }, { "$ref": "#/parameters/respuestas" } ], "responses": { "200": { "description": "Confirmación de la validación de las respuestas provistas y el hash.", "schema": { "$ref": "#/definitions/RespuestaPreguntasBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/blanqueo/${hashValidacion}/": { "post": { "operationId": "blanqueo", "summary": "Realiza la recepción del hash para el paso final del blanqueo.", "description": "Recibe el hash del último paso del proceso de blanqueo conjunto a la nueva clave.", "parameters": [ { "$ref": "#/parameters/hashValidacion" }, { "$ref": "#/parameters/nuevaClave" } ], "responses": { "200": { "description": "Confirmación del blanqueo de clave.", "schema": { "$ref": "#/definitions/RespuestaBlanqueo" } }, "400": { "$ref": "#/responses/400" } } } }, "/datosPersonales/": { "put": { "operationId": "editarDatosPersonales", "summary": "Modificación de datos personales de la cuenta de HB.", "description": "Permite realizar la modificación de datos personales. ", "parameters": [ { "$ref": "#/parameters/datosPersonalesModificar" } ], "responses": { "200": { "description": "Confirmación de las modificaciones solicitadas sobre los datos personales." }, "400": { "$ref": "#/responses/400" } } }, "get": { "operationId": "obtenerDatosPersonales", "summary": "Obtención de datos personales de la cuenta de HB.", "description": "Permite la obtención de los datos personales de la cuenta de HB.", "responses": { "200": { "description": "Set de datos personales del usuario autenticado.", "schema": { "$ref": "#/definitions/DatosPersonales" } }, "400": { "$ref": "#/responses/400" } } } }, "/avatar/": { "post": { "operationId": "obtenerAvatar", "summary": "Devuelve el avatar asociado al usuario informado.", "description": "Permite la obtención del avatar asociado al mail informado. Si el usuario no estuviera registrado, es necesario devolver una imagen aleatoria parte del set.", "parameters": [ { "$ref": "#/parameters/avatarObtener" } ], "responses": { "200": { "description": "Avatar del usuario.", "schema": { "$ref": "#/definitions/Avatar" } }, "400": { "$ref": "#/responses/400" } } } }, "/avatar/catalogo/": { "get": { "operationId": "obtenerCatalogoAvatar", "summary": "Obtención del catálogo de avatares.", "description": "Permite la obtención del catálogo de avatares para su posterior selección.", "responses": { "200": { "description": "Avatares para el usuario.", "schema": { "type": "array", "items": { "$ref": "#/definitions/Avatar" } } }, "400": { "$ref": "#/responses/400" } } } }, "/avatar/seleccion/": { "put": { "operationId": "seleccionarAvatar", "summary": "Selección del avatar para el usuario.", "description": "Permite al usuario seleccionar uno de los avatares obtenidos del catálogo.", "parameters": [ { "$ref": "#/parameters/avatarModificar" } ], "responses": { "200": { "description": "Confirmación de selección del avatar." }, "400": { "$ref": "#/responses/400" } } } } } }