# **GLOSARIO** Antes de empezar, se definirán algunos conceptos, según el uso que en esta aplicación se le dan, para mejor compresión. - **Firma:** Entidad firmante de la certificación de evidencias con identidad digital propia. No tiene funciones propias. Un cliente selecciona con que firma/s certificara la evidencia. Remarcar que se permite firmar una certificación con más de una firma. - **Evidencia:** Conjunto de archivos a certificar por el conjunto de firmas definido. - **Certificación o Evidencia certificada:** Registro inalterable en blockchain del contenido aportado. - **Token de acceso:** Código que permite identificarse de forma univoca para realizar las acciones en la API. - **Webhook:** Comunicación de eventos vía HTTP # **MAPA WEB** ## **ANTES DE IDENTIFICARSE** ### **LOGIN** ![](https://hackmd.io/_uploads/B1RnpZVYh.png) Página de acceso a nuestra aplicación. Es necesario estar dado de alta en nuestro sistema para poder acceder (en caso de no ser aun cliente, diríjase al apartado [REGISTRARSE](#registro). Se debe introducir el email con el que se realizó el registro y la contraseña de acceso (en caso de haber olvidado o extraviado la contraseña, siga los pasos descritos en el apartado [¿OLVIDASTE LA CONTRASEÑA?](#contraseña). Tras introducir los datos y pulsar el botón de "iniciar sesión", el sistema comprobará sus credenciales y le dará acceso a nuestras funcionalidades. ### **¿OLVIDASTE LA CONTRASEÑA?**<span id="contraseña"><span> ![](https://hackmd.io/_uploads/BJS9gGEYh.png) Si por algún motivo hubiese olvidado o extraviado su contraseña de acceso, nuestro sistema le permite, con total seguridad, crear una nueva para poder acceder sin problemas. Para ello, debe seguir los siguientes pasos: - En la página de login, más o menos el centro del panel principal, encontrara un link a "¿Olvidaste tu contraseña?". - Al pulsar dicho link se abrirá un nuevo panel en el que deberá introducir el mismo email con el que realizo el registro y pulsar enviar. - En su correo electrónico recibirá un mensaje con las instrucciones para resetear su contraseña. - Pulse en el botón "Reset" del mensaje y será redirigido al panel de creación de la nueva contraseña. - Introduzca el nuevo password, confírmelo y pulse el botón "enviar". - Se le confirmará la actualización de la nueva contraseña y ya podrá iniciar sesión con ella sin problema. Si tuviese cualquier problema en el proceso o ya no tuviese acceso al email con el que realizo el registro, póngase en contacto con nuestro <a href="mailto:development@icommunity.io">servicio técnico</a> quienes, tras verificar su identidad y propiedad de la cuenta, le ayudara a resolver cualquier problema de acceso. ### **REGISTRARSE**<span id="registro"><span> ![](https://hackmd.io/_uploads/SkSLxf4Yn.png) Nuestro sistema de registro es bastante simple. Se trata tan solo de rellenar un formulario con sus datos y enviárnoslo. Los campos a rellenar serian: - **Nombre o Razón Social:** Introduzca aquí el nombre o razón social de su persona física o jurídica. - **Correo electrónico:** En este campo deberá introducir el email con el que desea registrarse. Tenga en cuenta que posteriormente se le solicitara que verifique la propiedad de dicho email por razones de seguridad, así que debe de tratarse de un email valido de su propiedad al que pueda tener acceso. También debe de tener en cuenta que este será su nombre de usuario univoco para conectarse al sistema, por tanto, no podrán existir dos cuentas registradas con el mismo email. - **Contraseña:** Introduzca la contraseña de acceso que usted desee y confírmela. Recuerde que la contraseña es responsabilidad suya. La contraseña es únicamente de su propiedad, no la entregue ni comparta con terceros. Nuestra empresa no tiene acceso a esta contraseña de forma útil y por tanto no se hace cargo de cualquier uso fraudulento causado por su perdida, extravío o sustracción. - **Código de registro:** En este punto usted debe de introducir el código de registro que haya recibido. En caso de venir de plataformas de terceros o marketplaces el código le habrá sido entregado a la compra del producto. En caso de venir por referidos, estos le habrán entregado el código de registro. Si no tiene código alguno y desea registrarse, póngase en contacto con nuestro <a href="mailto:hello@icommunity.io">servicio de atención al cliente</a> para que le faciliten uno. - **Aceptación de "Términos y Condiciones" y "Política de Privacidad y Protección de Datos":** En este punto deberá aceptar todos nuestros términos legales. Tiene la posibilidad de leer los textos completos, antes de aceptarlos, accediendo desde la misma página de registro. Una vez rellenado el formulario y pulsado el botón "Registrarse" usted ya podrá acceder a nuestra plataforma directamente con el email y la contraseña con que haya hecho el registro. Paralelamente se le enviara un email a su cuenta para confirmarlo y que nos indique, de forma más privada, los datos de facturación. ## **TRAS IDENTIFICARSE**<span id="V2"><span> ### **BARRA SUPERIOR** #### **SELECTOR DE IDIOMA** Este desplegable le permitirá cambiar el idioma de nuestro contenido entre español e inglés. #### **CLIENTE** ##### **MI PERFIL** ![](https://hackmd.io/_uploads/S1IJbM4F3.png) Este apartado contiene los datos de cliente junto con sus datos de facturación. Todos los datos son modificables por el cliente, si fuese necesario. En el apartado de datos de cliente, podrá encontrar un link que le abrirá el panel de modificación de la contraseña. Para ello deberá introducir la contraseña actual, para demostrar que es usted quien la cambia y no cualquiera que haya podido tener acceso a su sesión abierta, y crear y confirmar la nueva contraseña que desee. ##### **CONTACTO** ![](https://hackmd.io/_uploads/BknlbzVt2.png) En esta sección podrá encontrar todas nuestras formas de contacto y redes sociales. Nuestros contenidos en estas últimas son muy interesantes, le animamos a comprobarlo. ##### **CERRAR SESION** Si selecciona esta acción, se cerrará la sesión actual con el cliente que se haya iniciado. #### **MANUAL DE USUARIO** Acceso directo a este mismo manual. #### **PANTALLA COMPLETA** Este botón de acción le permitirá visualizar nuestro contenido a pantalla completa, para salir de pantalla completa vuelva a pulsarlo. ### **MENU LATERAL** #### **RESUMEN** ![](https://hackmd.io/_uploads/SJifbfEY3.png) Panel de bienvenida a nuestro dashboard. En él se puede acceder de manera resumida a la información más relevante para el cliente de nuestra plataforma I.B.S. En primer lugar, se podrá encontrar cuatro accesos directos a las funciones mas usadas normalmente por nuestros clientes. - **Firmas:** acceso al listado de firmas disponibles. - **Nueva evidencia:** acceso al panel para realizar una nueva evidencia. - **Evidencias:** acceso al listado de evidencias realizadas. - **Tokens de acceso:** acceso al panel de gestión y generación de tokens de acceso a la API En segundo lugar encontramos un panel informativo en el que se reflejan los consumos realizados. Este panel, a su vez, se encuentra dividido en tres secciones. - **Este mes:** aquí podremos encontrar, de forma gráfica, las evidencias y firmas realizadas en el mes en curso. Si el tipo de suscripción a la que pertenece el cliente incluye limites mensuales, estos serán también reflejados en esta sección. - **Desde tu suscripción:** aquí podremos encontrar, de forma gráfica, las evidencias y firmas realizadas desde el inicio de la suscripción. Si el tipo de suscripción a la que pertenece el cliente incluye limites totales para el tiempo de duración de la suscripción, estos serán también reflejados en esta sección. Las suscripciones autorrenovables, reiniciaran este panel y sus límites en el momento de la renovación. - **Consumos:** Aquí podemos encontrar, de forma numérica, los consumos realizados. - En primer lugar, encontraremos los días restantes hasta el final de la suscripción. Si esta es infinita, el numero será 0 en verde. En los demás casos, el numero será un marcador de cuenta atrás, que cambiara de color a medida que se acerque el final de la suscripción: verde si quedan más de 30 días, naranja si quedan entre 30 y 15 días y rojo si quedan menos de 15 días. - En segundo lugar, encontraremos el valor de evidencias consumidas durante el mes en curso. Dependiendo de la modalidad de suscripción, esta información podrá ser mostrada de tres formas diferentes: - **Suscripción prepago (cerrada):** se mostrara la cantidad de evidencias que queden por hacer durante el periodo del mes en curso. Una vez este contador llegue a cero, no se podrán realizar más evidencias hasta que se reinicie. - **Suscripción prepago-pospago (abierta):** Inicialmente se mostrara un contador descendiente con la cantidad de evidencias prepagadas que queden por hacer. Una vez este contador llegue a cero, el contador pasara a ser ascendente contabilizando las evidencias que se le facturaran a final de mes por haber superado el límite prepagado. La etiqueta informativa inferior le indicara en que estado se encuentra el contador. - **Suscripción pospago (ilimitada):** se mostrara un contador ascendente contabilizando las evidencias que se le facturaran a final de mes. - Por último encontraremos el valor de firmas consumidas durante el mes en curso. Dependiendo de la modalidad de suscripción, esta información, al igual que en las evidencias, podrá ser mostrada de tres formas diferentes: - **Suscripción prepago (cerrada):** se mostrara la cantidad de firmas que le quedan por crear durante el periodo del mes en curso. Una vez este contador llegue a cero, no se podrán crear más firmas hasta que se reinicie. - **Suscripción prepago-pospago (abierta):** Inicialmente se mostrara un contador descendiente con la cantidad de firmas prepagadas que le quedan por crear. Una vez este contador llegue a cero, el contador pasara a ser ascendente contabilizando las firmas que se le facturaran a final de mes por haber superado el límite prepagado. La etiqueta informativa inferior le indicara en qué estado se encuentra el contador. - **Suscripción pospago (ilimitada):** se mostrara un contador ascendente contabilizando las firmas que se le facturaran a final de mes. Por último encontraremos las secciones de ultimas firmas creadas y ultimas evidencias creadas, donde podrá ver la información resumida de las 5 ultimas firmas y las 5 ultimas evidencias del cliente. Para mayor información hay que dirigirse a los listados completos de firmas o de evidencias. #### **FIRMAS** ##### **NUEVA FIRMA** ![](https://hackmd.io/_uploads/S184ZM4Y2.png) Desde este panel podremos iniciar la creación de una nueva firma. Tan solo introduciendo un identificador personal (no modificable) pera la firma que se desea crear y pulsando el botón, será redirigido al sistema de verificación de identidad de iCommunity. En él deberá seguir las instrucciones para crear la identidad digital para la firma (Para más información véase el apartado [identidad digital](https://hackmd.io/@iCommunity/r12JqPrK2)). Una vez terminado el proceso, la firma quedara en estado pendiente hasta que los datos introducidos sean validados. Una vez aprobada, la firma estará lista para ser usada en las evidencias. ##### **LISTADO DE FIRMAS** ![](https://hackmd.io/_uploads/SJjHZfVth.png) Listado de todas las firmas creadas por el cliente. Podrá realizar búsquedas en el listado según el nombre identificativo asignado a la firma cuando se creó. En el listado se mostrará el estado en que se encuentre cada firma, siendo dichos estados los siguientes: - **Esperando documentos:** La firma ha sido cread pero aún no se han subido los documentos necesarios para realizar el proceso de verificación. Junto al estado aparecerá el botón para relanzar el sistema de subida de documentos. - **Pendiente de verificación:** El proceso de verificación está en curso. Nuestro sistema automático se encuentra revisando que se cumplan todos los requisitos para verificar la identidad. - **Denegado:** La comprobación de identidad ha sido denegada por no cumplir los requisitos. Debe volver a subir los documentos necesarios para abrir un nuevo proceso de verificación de la identidad. Junto al estado aparecerá el botón para relanzar el sistema de subida de documentos. - **Registro completado:** La identidad asignada a la firma ha sido confirmada y, por tanto, esta firma ya puede ser usada para certificar evidencias. Al final del listad se podrán encontrar dos botones de acción sobre la firma en cuestión. - **Evidencias:** Solo aparecerá junto a las firmas con el estado "registro completado" y redirigirá a un panel donde podremos encontrar el listado de las evidencias certificadas con dicha firma. - **Borrar:** Eliminara la firma de este listado y del listado para la certificación de nuevas evidencias. Este borrado no será físico ni en cascada, pues las evidencias ya certificadas con dicha firma seguirán siendo accesibles y la identidad digital perteneciente a esta firma seguirá existiendo para poder verificar dicha certificación de la evidencia si fuese necesario. Si se necesitase reactivar una firma borrada, póngase en contacto con nuestro <a href="mailto:development@icommunity.io">servicio técnico</a>. #### **EVIDENCIAS** ##### **NUEVA EVIDENCIA** ![](https://hackmd.io/_uploads/BJ6wbz4th.png) Desde este panel podremos crear una evidencia para que se certifique. Los campos a rellenar serían los siguientes: - **Título:** Nombre identificativo de la evidencia. Permite la introducción de letras números y símbolos con una longitud mínima de 4 caracteres y máxima de 128. - **Firmas:** Selector del listado de firmas ya aprobadas. Nuestro sistema permite que un documento sea certificado por más de un firmante. - **Archivos:** panel de carga de los archivos a certificar. No tiene límite en el número de archivos a certificar, pero si en el tamaño total de estos. Dicho limite está en 16MB. Se ha de tener en cuenta que a la hora de verificar una evidencia certificada, se tienen que verificar todos los archivos originales, si uno solo no coincidiese, la verificación saldría negativa. Junto al formulario podremos observar la huella digital del contenido, que es una representación de la codificación de los archivos que se registrara en blockchain. Cabe recordar que blockchain no es un sistema de almacenamiento en la nube ni nada similar. La certificación en blockchain supone el guardado de un sistema de verificación de la no alteración del archivo o texto introducido. Por tanto, para realizar la verificación sera necesario conservar los originales. ##### **LISTADO DE EVIDENCIAS** ![](https://hackmd.io/_uploads/SkijkqSY3.png) Listado de todas las evidencias creadas por el cliente. Podrá realizar búsquedas en el listado según el titulo asignado a la evidencia cuando se creó y el nombre de uno de los firmantes. Los campos que podrá encontrar en el listado son los siguientes: - **Fecha:** Fecha y hora de la creación de la evidencia. No confundir con la timestamp en blockchain. En un símil documental, esta fecha es la fecha de entrada de una solicitud para un trámite y el timestamp es la fecha de registro en el tomo correspondiente tras los trámites necesarios. - **ID:** Identificador univoco de la evidencia para el tratado de esta si se usa la API directamente. - **Titulo:** Identificador de la evidencia propuesto por el cliente a la hora de realizar la evidencia. Tenga en cuenta que este campo no tiene por qué ser único. - **Firma:** Firmante/s de la evidencia. Es/Son el/los identificador/es de la/s identidad/es digitales que certifica/n la evidencia. - **Estado:** Estado en que se encuentre cada evidencia, siendo dichos estados los siguientes: - **Recibido:** La evidencia ha sido recibida por nuestra API y se encuentra en cola para proceder a su certificación - **Enviado:** La evidencia ha comenzado su proceso de certificación y registro en blockchain. - **Certificado:** La certificación de la evidencia ha sido registrada en blockchain de forma exitosa. A partir de este momento dicha certificación es inalterable. - **Fallido:** La certificación de la evidencia no se ha podido registrar en blockchain. Este estado no debería aparecer en su listado en ningún momento pues nuestro servicio se encarga de relanzar una certificación en la que se haya podido producir algún problema, asegurándose así de que toda evidencia sea certificada y registrada correctamente. Pero, como es lógico, nada es 100% infalible y por esto se ha tenido en cuenta este estado. Si llegase a aparecer en su listado, no dude en ponerse en contacto con nuestro <a href="mailto:development@icommunity.io">servicio técnico</a> para que revisemos y solucionemos el problema. - **Verificar:** Link directo a la certificación correspondiente en nuestro verificador de evidencias, donde podrá ver los datos grabados en blockchain, comprobar la integridad de los archivos certificados y consultar la identidad digital del firmante. #### **HERRAMIENTAS** ![](https://hackmd.io/_uploads/Sk7YWf4Yh.png) Panel con enlaces de acceso a herramientas exteriores pertenecientes a nuestro ecosistema. Actualmente solo se puede acceder a nuestro comprobador de evidencias. Se irán añadiendo nuevas herramientas a futuro. #### **API** ##### **TOKENS DE ACCESO** ![](https://hackmd.io/_uploads/SyEcWM4K2.png) Panel de creación y gestión de tokens de acceso del cliente para el uso directo de la API. En primer lugar, encontrara el formulario de creación de tokens. Tan solo es necesario introducir una descripción o identificador para el token solicitado y seleccionar la duración de validez que se desea para dicho token. Una vez hecho esto, el sistema generara un token de acceso basado en un algoritmo de clave aleatoria que le mostrara en pantalla. **Atención:** Tenga en cuenta que este toquen de acceso solo estará disponible en este momento, una vez cierre el mensaje en que se le entrega, el token no volverá a ser accesible ni podremos volver a mostrárselo. Esto se hace para asegurar que usted y solo usted tiene acceso al token para que nadie más (ni siquiera nosotros) pueda interactuar con la API en su nombre. Si no copia el token en ese momento o lo extraviase, no tendría más remedio que revocarlo y crear uno nuevo. Tras el formulario, podremos encontrar el listado de los tokens de acceso creados por el cliente. en este listado podrá encontrar los siguientes campos: - **Descripción:** Identificador asignado al token por el cliente en el momento de crearlo. no tiene por qué ser único. - **Creado el:** Fecha de creación del token a partir de la cual empieza su validez. - **Expiración:** Fecha final de validez del token. En caso de haber elegido crear un token sin fecha de expiración aparecerá la palabra "nunca". - **Acciones:** botón de borrar para poder revocar un token. Esta acción dejara el token sin validez (en caso de que aún no haya expirado) y lo eliminara del listado. ##### **EVENTOS** ![](https://hackmd.io/_uploads/ryHjWfVFh.png) En este panel encontrara un listado de los eventos generados por la interacción con la API. Además de ver el contenido de cada notificación generada por el evento, podra reenviar dicha información a través de los webhooks registrados simplemente seleccionando el evento requerido y pulsando el botón reenviar. El panel informativo que aparecerá al realizar el reenvío, mostrara la recepción o no por cada uno de los webhooks asignados al tipo de evento. Los formatos de la información de los eventos serán los mismos que veremos a continuación en el apartado de los webhooks. ##### **WEBHOOKS** ![](https://hackmd.io/_uploads/BJmnbGEK3.png) Panel de creación y gestión de webhooks. En la parte superior podremos observar el formulario de creación. Los datos a introducir serian: - **Nombre:** Identificador personalizado para reconocer el webhook. - **Url:** Dirección HTTP en la que se quiere recibir la información. Solo se aceptarán formatos validos de direcciones web. - **Autorización (Opcional):** Aquí puede introducir el token de autorización para la dirección introducida, si esta es de acceso restringido. En caso contrario, dejar en blanco. - **Eventos a comunicar:** Existen tres tipos de evento a comunicar vía webhook. Usted puede escoger que evento/s quiere recibir en cada dirección que registre. Los eventos en cuestión son: - **Evidencia certificada:** Se enviara a la confirmación de que una evidencia ha sido registrada de forma exitosa en blockchain. La información enviada tendrá la estructura del siguiente ejemplo: <pre> { "id": "evt_nG8rskFSBbc4er2D4TUqre", "data": { "title": "Cliente 02 - V2 Evidencia 5 (2023-07-03T11:37:57)", "network": "matic", "payload": { "title": "Cliente 02 - V2 Evidencia 5 (2023-07-03T11:37:57)", "integrity": [ { "name": "AdamBack.jpg", "type": "file", "checksum": "WnN4JBhPIeBn7Jrb8bjBUxmxYEgS78vvcyxIlRkiv0cE78qCypfE3uEMguNlcxj9UMFzUv/HbbWXGryXX0i3IQ==", "algorithm": "SHA-512", "sanitizer": "base64.standard" } ] }, "evidence_id": "evd_o2UpbTPjBmhDorAFctLc6g", "certification_hash": "0x1cda0fc767474b52604be034716f7f2b2b4aedc6eda812d50b78e127ba8ff7e9", "certification_timestamp": "2023-07-03T11:39:23Z" }, "event": "evidence.certified" } </pre> - **Verificación de identidad confirmada:** Se enviara tras la superación de forma exitosa de la comprobación de identidad. Supondrá el paso de una firma creada al estado valido para su uso en las evidencias. La información enviada tendrá la estructura del siguiente ejemplo: <pre> { "id": "evt_CWTXw9T3uvHPdYiMBcTotr", "data": { "signature_id": "sig_SqC2sopk4QGS5VFrrdM4nV" }, "event": "signature.verification.success" } </pre> - **Verificación de identidad fallida:** Se enviara si la comprobación de identidad encuentra que esta no puede ser aprobada por algún motivo. La información enviada tendrá la estructura del siguiente ejemplo: <pre> { "id": "evt_Egrgn3SpDRU9q8kbVnLw2X", "data": { "description": { "code":1 "type":"No Documents" "comment": "it's a test" }, "signature_id": "sig_dvkgDzL6BrSdCjTL9X8u27" }, "event": "signature.verification.failed" } </pre> ##### **DOCUMENTACIÓN** ![](https://hackmd.io/_uploads/SJ4T-z4t3.png) Panel con enlaces a la documentación de la API, tales como: - **Swagger:** Documentación técnica de la API con posibilidad de interacción. Muestra todos los formatos de llamada y respuestas. - **Redoc:** Documentación técnica de la API con todas las definiciones y ejemplos de código para realizar las llamadas. - **Videotutoriales en Youtube:** aprende como usar nuestra API de una forma visual y más cercana con nuestros videotutoriales.