Passwordless

El servicio de "Passwordless" es una herramienta de identificación instantánea y precisa que valida si un individuo pertenece a un grupo predefinido de rostros almacenados en una base de datos.

Empezando


Para proceder, es indispensable generar una clave API con un tiempo de expiración definido.

Este proceso puede completarse fácilmente mediante el panel de administrado. Esto garantiza un acceso seguro y gestionado a los recursos necesarios durante el tiempo estipulado.

Para más detalles, consulta la documentación específica de cada método disponible a través de los siguientes enlaces:


Requisitos


Para usar este producto, necesitas:

  • Un video o imagen de un rostro que cumpla con los requisitos de duración, visibilidad, iluminación y calidad en Base64.
  • Asegúrate de que el video o imagen esté disponible en el dispositivo desde el cual se realizará la prueba.

Enrolar con video


<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>POST basePath/api/v1/passwordless/client/enroll</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint es para inscribir a una nueva persona, la inscripción debe realizarse a través de un video codificado en base64. </p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición


Descripción de los parámetros

ParámetroDescripción
userObjeto que contiene la información del usuario.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
videoCadena codificada en Base64 que representa el video.

Respuesta



Descripción de los parámetros

ParámetroDescripción
eventIdIdentificador único del evento de la solicitud, representado como una cadena de texto.
processTimeTiempo de procesamiento de la solicitud, representado como un número.
requestIdIdentificador único de la solicitud, representado como una cadena de texto.
userObjeto que contiene la información del usuario.
user.companyIdIdentificador de la compañía del usuario, representado como una cadena de texto.
user.createdAtFecha y hora de creación del usuario, representada como una cadena de texto.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
user.idIdentificador único del usuario, representado como una cadena de texto.
user.imagesObjeto que contiene las imágenes del usuario.
user.images.originalCadena codificada en Base64 que representa la imagen original del usuario.
user.images.thumbnailCadena codificada en Base64 que representa la imagen en miniatura del usuario.
user.metaObjeto que contiene metadatos adicionales del usuario.
user.statusEstado del usuario, representado como una cadena de texto (por ejemplo, "active").
user.updatedAtFecha y hora de la última actualización del usuario, representada como una cadena de texto.

<br />

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```json Petición
{ "user": { "email": "[email protected]", "externalId": "company.ai", "fullName": "Joaquin Gonzalez" }, "video": "GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYEC - videoBase64" } ``` ```json Respuesta { "eventId": "8452772e-9a5c-428a-a7cd-c7d4569816f4", "requestId": "8452772e-9a5c-428a-a7cd-c7d4569816f4", "user": { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777150234Z", "updatedAt": "2024-06-04T17:45:46.777158767Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "company.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-S9b1ed3b793783d8c2e2e307c9adc65b6c8b8858bc345d5b1717og-SignedHeaders=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4nedHeaders=host" }, "meta": { "extra": {} }, "status": "active" }, "processTime": 2551 } ```

</div>
</details>

<br />

Enroll con Imagen



<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>POST basePath/api/v1/passwordless/client/face-enroll</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint es para inscribir a una nueva persona, la inscripción debe realizarse a través de una imagen codificado en base64. </p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición



Descripción de los parámetros

ParámetroDescripción
userObjeto que contiene la información del usuario.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
imageCadena codificada en Base64 que representa la imagen.

Respuesta



Descripción de los parámetros
ParámetroDescripción
eventIdIdentificador único del evento de la solicitud, representado como una cadena de texto.
processTimeTiempo de procesamiento de la solicitud, representado como un número.
requestIdIdentificador único de la solicitud, representado como una cadena de texto.
userObjeto que contiene la información del usuario.
user.companyIdIdentificador de la compañía del usuario, representado como una cadena de texto.
user.createdAtFecha y hora de creación del usuario, representada como una cadena de texto.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
user.idIdentificador único del usuario, representado como una cadena de texto.
user.imagesObjeto que contiene las imágenes del usuario.
user.images.originalCadena codificada en Base64 que representa la imagen original del usuario.
user.images.thumbnailCadena codificada en Base64 que representa la imagen en miniatura del usuario.
user.metaObjeto que contiene metadatos adicionales del usuario.
user.statusEstado del usuario, representado como una cadena de texto (por ejemplo, "active").
user.updatedAtFecha y hora de la última actualización del usuario, representada como una cadena de texto.

</div>
</details>

Ejemplos de Solicitudes
{
  "user": {
    "email": "[email protected]",
    "externalId": "company.ai",
    "fullName": "Joaquin Gonzalez"
  },
  "image": "GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYEC - imagenBase64"
}
{
    "eventId": "8452772e-9a5c-428a-a7cd-c7d4569816f4",
    "requestId": "8452772e-9a5c-428a-a7cd-c7d4569816f4",
    "user": {
        "id": "665f52cabf1fc4eac4a0dc3a",
        "createdAt": "2024-06-04T17:45:46.777150234Z",
        "updatedAt": "2024-06-04T17:45:46.777158767Z",
        "companyId": "65b04320d7f4fa9e6cdbf909",
        "fullName": "Joaquin Gonzalez",
        "email": "[email protected]",
        "externalId": "company.ai",
        "images": {
            "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-S9b1ed3b793783d8c2e2e307c9adc65b6c8b8858bc345d5b1717og-SignedHeaders=host",
            "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4nedHeaders=host"
        },
        "meta": {
            "extra": {}
        },
        "status": "active"
    },
    "processTime": 2551
}

Verificar con video



<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>POST basePath/api/v1/passwordless/client/verify</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint verifica la autenticidad de una persona previamente inscrita, la verificación se realiza a través de una video codificado en base64. </p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición



Descripción de los parámetros
ParámetroDescripción
videoCadena codificada en Base64 que representa el video.

Respuesta



Descripción de los parámetros
ParámetroDescripción
eventIdIdentificador único del evento de la solicitud, representado como una cadena de texto.
processTimeTiempo de procesamiento de la solicitud, representado como un número.
requestIdIdentificador único de la solicitud, representado como una cadena de texto.
userObjeto que contiene la información del usuario.
user.companyIdIdentificador de la compañía del usuario, representado como una cadena de texto.
user.createdAtFecha y hora de creación del usuario, representada como una cadena de texto.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
user.idIdentificador único del usuario, representado como una cadena de texto.
user.imagesObjeto que contiene las imágenes del usuario.
user.images.originalCadena codificada en Base64 que representa la imagen original del usuario.
user.images.thumbnailCadena codificada en Base64 que representa la imagen en miniatura del usuario.
user.metaObjeto que contiene metadatos adicionales del usuario.
user.statusEstado del usuario, representado como una cadena de texto (por ejemplo, "active").
user.updatedAtFecha y hora de la última actualización del usuario, representada como una cadena de texto.

<br />

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```json Petición
{ "video": "GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYEC - videoBase64" } ``` ```json Respuesta { "eventId": "d17916cd-4281-4790-ad1d-11c2997a50a2", "requestId": "d17916cd-4281-4790-ad1d-11c2997a50a2", "user": { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777Z", "updatedAt": "2024-06-04T17:45:46.777Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "company.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-SignedHeaders=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4-RSA--SignedHeaders=host" }, "meta": { "extra": {} }, "status": "active" }, "processTime": 2043 } ```

</div>
</details>

<br />

Verificar por imagen



<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>POST basePath/api/v1/passwordless/client/face-verify</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint verifica la autenticidad de una persona previamente inscrita, la verificación se realiza a través de una imagen codificada en base64. </p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición



Descripción de los parámetros

ParámetroDescripción
imageCadena codificada en Base64 que representa la imagen.

Respuesta



Descripción de los parámetros

ParámetroDescripción
eventIdIdentificador único del evento de la solicitud, representado como una cadena de texto.
processTimeTiempo de procesamiento de la solicitud, representado como un número.
requestIdIdentificador único de la solicitud, representado como una cadena de texto.
userObjeto que contiene la información del usuario.
user.companyIdIdentificador de la compañía del usuario, representado como una cadena de texto.
user.createdAtFecha y hora de creación del usuario, representada como una cadena de texto.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
user.idIdentificador único del usuario, representado como una cadena de texto.
user.imagesObjeto que contiene las imágenes del usuario.
user.images.originalCadena codificada en Base64 que representa la imagen original del usuario.
user.images.thumbnailCadena codificada en Base64 que representa la imagen en miniatura del usuario.
user.metaObjeto que contiene metadatos adicionales del usuario.
user.statusEstado del usuario, representado como una cadena de texto (por ejemplo, "active").
user.updatedAtFecha y hora de la última actualización del usuario, representada como una cadena de texto.

<br />

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```json Petición
{ "image": "GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYEC - imagenBase64"} ``` ```json Respuesta { "eventId": "8452772e-9a5c-428a-a7cd-c7d4569816f4", "requestId": "8452772e-9a5c-428a-a7cd-c7d4569816f4", "user": { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777150234Z", "updatedAt": "2024-06-04T17:45:46.777158767Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "company.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-S9b1ed3b793783d8c2e2e307c9adc65b6c8b8858bc345d5b1717og-SignedHeaders=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4nedHeaders=host" }, "meta": { "extra": {} }, "status": "active" }, "processTime": 2551 } ```

</div>
</details>

Buscar Usuario por Imagen



<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>POST basePath/api/v1/passwordless/client/facial</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint verifica la autenticidad de una persona previamente inscrita, la verificación se realiza a través de una imagen codificada en base64. </p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición



Descripción de los parámetros

ParámetroDescripción
imageImagen de la persona a buscar codificada en base64.
rankingTopNumero de coincidencias a retornar

Respuesta



Descripción de los parámetros

ParámetroDescripción
clientListLista de usuarios registrados con coincidencia.
distanceLa distancia entre el cliente encontrado y la imagen facial de entrada.
userObjeto que contiene la información del usuario.
user.companyIdIdentificador de la compañía a la que pertenece el usuario.
user.createdAtFecha y hora de creación del usuario, representada como una cadena de texto.
user.emailDirección de correo electrónico del usuario, representada como una cadena de texto.
user.externalIdIdentificador externo del usuario, representado como una cadena de texto.
user.fullNameNombre completo del usuario, representado como una cadena de texto.
user.idIdentificador único del usuario, representado como una cadena de texto.
user.imagesObjeto que contiene las imágenes del usuario.
user.images.originalCadena codificada en Base64 que representa la imagen original del usuario.
user.images.thumbnailCadena codificada en Base64 que representa la imagen en miniatura del usuario.
user.metaObjeto que contiene metadatos adicionales del usuario.
user.statusEstado del usuario, representado como una cadena de texto ("active" ó "inactive).
user.updatedAtFecha y hora de la última actualización del usuario, representada como una cadena de texto.

<br />

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```json Petición
{ "image": "/9j/4AAQSkZJRgABAQEAYABgAAD/4TDKRXhpZgAATU0AKgAAA - imagenBase64", "rankingTop": 10 } ``` ```json Respuesta { "clientList": [ { "user": { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777Z", "updatedAt": "2024-06-04T17:45:46.777Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "company.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host" }, "meta": { "extra": {} }, "status": "active" }, "distance": 0.8235001564025879 }, { ... // 9 resultados más. }, ], "threshold": 0.4
} ```

</div>
</details>

<br />

Buscar una lista de usuarios



<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>GET basePath/api/v1/passwordless/client</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint puede buscar una lista de usuarios inscritos según los parámetros de búsqueda añadidos a la petición.

</p>

<br />

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

Petición



Descripción de los parámetros

Parámetros de ConsultaDescripción
limitNúmero máximo de resultados a retornar.
pageNúmero de la página de resultados a retornar.
statusEstado del usuario.("active" ó "inactive).
fullNameNombre completo del usuario a buscar.
min-created-atFecha y hora mínima de creación del usuario, utilizada como filtro.
max-created-atFecha y hora máxima de creación del usuario, utilizada como filtro.

Respuesta


{
  "docList": [
    {
      "companyId": "string",
      "createdAt": "string",
      "email": "string",
      "externalId": "string",
      "fullName": "string",
      "id": "string",
      "images": {
        "original": "string",
        "thumbnail": "string"
      },
      "meta": {},
      "status": "active",
      "updatedAt": "string"
    }
  ],
  "limit": 0,
  "nextPage": true,
  "page": 0,
  "prevPage": true,
  "totalDocs": 0,
  "totalPages": 0
}

Descripción de los parámetros

| Parámetro | Descripción |
| ---------- | -------------------------------------------------------------------------------------- | | docList | Lista de documentos que cumplen con los criterios de la solicitud. | | limit | Número máximo de documentos retornados por página. | | nextPage | Indicador de si hay una página siguiente de resultados, representado como un booleano. | | page | Número de la página actual de resultados. | | prevPage | Indicador de si hay una página anterior de resultados, representado como un booleano. | | totalDocs | Número total de documentos que cumplen con los criterios de la solicitud. | | totalPages | Número total de páginas de resultados. |

#### Descripción de parametros de Objeto DocList

| Field | Description |
| ---------------- | ------------------------------------------------------------------------------ | | companyId | Identificador de la compañía a la que pertenece el usuario. | | createdAt | Fecha y hora de creación del usuario. | | email | Dirección de correo electrónico del usuario. | | externalId | Identificador externo del usuario. | | fullName | Nombre completo del usuario. | | id | Identificador único del usuario. | | images | Objeto que contiene las imágenes del usuario. | | images.original | Cadena codificada en Base64 que representa la imagen original del usuario. | | images.thumbnail | Cadena codificada en Base64 que representa la imagen en miniatura del usuario. | | meta | Objeto que contiene metadatos adicionales del usuario. | | status | Estado del usuario ("active" ó "inactive"). | | updatedAt | Fecha y hora de la última actualización del usuario. |

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```json Query Params
{ "limit": 10, "page": 1 } ``` ```json Respuesta { "totalDocs": 9, "totalPages": 1, "docList": [ { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777Z", "updatedAt": "2024-06-04T17:45:46.777Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "jaak.ai", "images": { "original": "", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4-RSA-SHA256\u0026X-Goog-Credential=dev-rigel-storage%40jaak-saas.iam.gserviceaccount.com%2F20240604%2Fauto%2Fstorage%2Fgoog4_request\u0026X-Goog-Date=20240604T212814Z\u0026X-Goog-Expires=899\u0026X-Goog-Signature=33d88b2046036388c345c2c6e7a9f09b0400d35be7d490d0dd45d6c964690b3ac93eec8a7306b34058f763040248f475698d79a7eb21eda721705ab73ca67c0110e8b938cf7ba255e9dd0bb87c0f30e12ef1fb7c61a60004679045758aeb8f4c3d49e291ab901af6cf8f86ad0922664913f59322c4e12c8aaf4ecc94e7429128bdb97aeb46b02db05185ccf965b093f4fb39b8777a51ab2fd7ff6e3772f4020765727b29225a8518dfd9325653f62a82436086ebddef828b6c3b7bb9977d92609a2952f85d0f8545d1ed35915e4189c342fdec12a5a6349d9c915c79ddf0220abf9a6bfde1d60b872e9fe80ca3149df5667784a455b6277386cdd7d2291b50cd\u0026X-Goog-SignedHeaders=host" }, "meta": { "extra": {} }, "status": "active" }, { ... // 8 resultados más }, ], "limit": 10, "page": 1, "nextPage": false, "prevPage": false }

```

</div>
</details>

<br />

## Encontrar un usuario

***

<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>GET basePath/api/v1/passwordless/client/{id}</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint puede buscar un usuario inscrito basado en su id.

</p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

#### Petición

```sh CURL Request
curl --request GET \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/id \ --header 'Authorization: <token-de-acceso>' \ --header 'accept: application/json' ```

##### Descripción de los parámetros

| Parámetros de Consulta | Descripción |
| ---------------------- | -------------------------------- | | id | Identificador único del usuario. |

#### Respuesta

```json Respuesta
{ "companyId": "string", "createdAt": "string", "email": "string", "externalId": "string", "fullName": "string", "id": "string", "images": { "original": "string", "thumbnail": "string" }, "meta": {}, "status": "active", "updatedAt": "string" } ```

##### Descripción de los parámetros

| Parámetro | Descripción |
| ---------------- | ------------------------------------------------------------------------------ | | companyId | Identificador de la compañía del usuario. | | createdAt | Fecha y hora de creación del usuario. | | email | Dirección de correo electrónico del usuario. | | externalId | Identificador externo del usuario. | | fullName | Nombre completo del usuario. | | id | Identificador único del usuario. | | images | Objeto que contiene las imágenes del usuario. | | images.original | Cadena codificada en Base64 que representa la imagen original del usuario. | | images.thumbnail | Cadena codificada en Base64 que representa la imagen en miniatura del usuario. | | meta | Objeto que contiene metadatos adicionales del usuario. | | status | Estado del usuario ("active" ó "inactive). | | updatedAt | Fecha y hora de la última actualización del usuario. |

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```sh CURL Request
curl --request GET \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/665f52cabf1fc4eac4a0dc3 \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55IjoiN' \ --header 'accept: application/json' ``` ```json Respuesta { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777Z", "updatedAt": "2024-06-04T17:45:46.777Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "company.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host" }, "meta": { "extra": {} }, "status": "active" } ```

</div>
</details>

<br />

## Actualizar usuario

***

<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>PUT basePath/api/v1/passwordless/client/{id}</code> </div>

<p style={{textAlign: "justify"}}>
Este endpoint puede actualizar un usuario inscrito basado en su id modificando su nombre y estado.

</p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

#### Petición

```sh CURL Request
curl --request PUT \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/id \ --header 'Authorization: <token-de-acceso>' \ --header 'Latitude: 40.7128' \ --header 'Longitude: -74.0060' \ --header 'Request-Id: d99fe2d2-c0c3-4396-bd97-a502b4c30fa3' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "fullName": "string", "status": "active" } ' ```

#### Descripción de los parámetros

| Parámetros de Consulta | Descripción |
| ---------------------- | -------------------------------- | | id | Identificador único del usuario. |

| Parámetros de Consulta | Descripción |
| ---------------------- | ------------------------------------------ | | fullName | Nombre completo del usuario. | | status | Estado del usuario ("active" ó "inactive). |

#### Respuesta

```json Respuesta
{ "companyId": "string", "createdAt": "string", "email": "string", "externalId": "string", "fullName": "string", "id": "string", "images": { "original": "string", "thumbnail": "string" }, "meta": {}, "status": "active", "updatedAt": "string" } ```

#### Descripción de los parámetros

| Parámetro | Descripción |
| ---------------- | ---------------------------------------------------------------------------------- | | companyId | Identificador de la compañía del usuario. | | createdAt | Fecha y hora de creación del usuario. | | email | Dirección de correo electrónico del usuario. | | externalId | Identificador externo del usuario. | | fullName | Nombre completo del usuario. | | id | Identificador único del usuario. | | images | Objeto que contiene las imágenes del usuario. | | images.original | Cadena codificada en Base64 que representa la imagen original del usuario. | | images.thumbnail | Cadena codificada en Base64 que representa la imagen en miniatura del usuario. | | meta | Objeto que contiene metadatos adicionales del usuario. | | status | Estado del usuario, representado como una cadena de texto (por ejemplo, "active"). | | updatedAt | Fecha y hora de la última actualización del usuario. |

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```sh CURL Request
curl --request PUT \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/665f52cabf1fc4eac4a0dc3a \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55IjoiNjViMDQzMjB' \ --header 'Latitude: 40.7128' \ --header 'Longitude: -74.0060' \ --header 'Request-Id: d99fe2d2-c0c3-4396-bd97-a502b4c30fa3' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "fullName": "Joaquin Gonzalez", "status": "inactive" } ' ``` ```json Petición { "fullName": "Joaquin Gonzalez", "status": "inactive" } ``` ```json Respuesta { "id": "665f52cabf1fc4eac4a0dc3a", "createdAt": "2024-06-04T17:45:46.777Z", "updatedAt": "2024-06-04T22:30:09.785957709Z", "companyId": "65b04320d7f4fa9e6cdbf909", "fullName": "Joaquin Gonzalez", "email": "[email protected]", "externalId": "jaak.ai", "images": { "original": "https://storage.googleapis.com/dev-nfury-media/83d691ca-f1f6-4239-9c8a-74e7c7d0a7d7.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host", "thumbnail": "https://storage.googleapis.com/dev-nfury-media/10146d65-dc17-4102-89ac-6aa87e9fc2e3.media?X-Goog-Algorithm=GOOG4-RSA-Headers=host" }, "meta": { "extra": {} }, "status": "inactive" } ```

</div>
</details>

<br />

## Eliminar usuario

***

<div style={{fontSize: 18, fontWeight: 16}}>
<code style={{padding: "0px", fontSize: "18px", fontWeight: "600"}}>DELETE basePath/api/v1/passwordless/client/{id}</code> </div>

<p style='text-align: justify;'>
Este endpoint puede borrar un usuario inscrito basado en su id.

> 📝 Note: Borrar a un usuario inscrito es una acción permenante y no puede ser restaurado.

</p>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Descripción de la Solicitud</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

#### Petición

```sh CURL Request
curl --request DELETE \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/id \ --header 'Authorization: <token-de-acceso>' \ --header 'accept: application/json' ```

#### Descripción de los parámetros

| Parámetros de Consulta | Descripción |
| ---------------------- | -------------------------------- | | id | Identificador único del usuario. |

#### Respuesta

```json Respuesta
{} ```

</div>
</details>

<details style={{backgroundColor: "rgba(177, 202, 223, 0.2)"}}>
<summary style={{padding: "10px", borderRadius: "5px"}}>Ejemplos de Solicitudes</summary> <div style={{padding: "0 2vh 2vh 2vh"}}>

```sh CURL Request
curl --request DELETE \ --url https://sandbox.api.jaak.ai/api/v1/passwordless/client/665f52cabf1fc4eac4a0dc3a \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55IjoiNjViMDQzMjBkN2Y0ZmE5Z' \ --header 'accept: application/json' ``` ```json Respuesta {} ```

</div>
</details>