> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getjusto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener datos del usuario

> Endpoint para obtener los datos del usuario necesarios para el onboarding automático

Este endpoint permite a Justo obtener los datos del usuario necesarios para realizar el onboarding automático. Justo llamará a este endpoint cuando necesite obtener la información del usuario identificado por el `externalUserId` que se pasó en la URL del webview.

## Parámetros de ruta

<ParamField path="externalUserId" type="string" required>
  El identificador del usuario en la aplicación contenedora. Este puede ser un `userId`, `accountId`, `sessionId`, `email`, `authCode`, o una llave cifrada previamente coordinada.
</ParamField>

## Respuesta exitosa

<ResponseField name="email" type="string" required>
  Correo electrónico del usuario. Este campo es obligatorio ya que en Justo el email es la llave primaria de los usuarios.
</ResponseField>

<ResponseField name="firstName" type="string" required>
  Nombre del usuario.
</ResponseField>

<ResponseField name="lastName" type="string" required>
  Apellido del usuario.
</ResponseField>

<ResponseField name="phone" type="string" required>
  Número de teléfono del usuario.
</ResponseField>

## Ejemplo de respuesta

```json theme={null}
{
  "email": "usuario@ejemplo.com",
  "firstName": "Juan",
  "lastName": "Pérez",
  "phone": "+56912345678"
}
```

## Códigos de estado

<StatusCode status="200">
  La solicitud fue exitosa y se retornaron los datos del usuario.
</StatusCode>

<StatusCode status="400">
  Error de validación. El `externalUserId` proporcionado no es válido o no se encontró el usuario.
</StatusCode>

<StatusCode status="401">
  No autorizado. El token de autenticación es inválido o ha expirado.
</StatusCode>

<StatusCode status="404">
  El usuario con el `externalUserId` proporcionado no fue encontrado.
</StatusCode>

## Notas importantes

<Warning>
  El email es la llave primaria en Justo. Es responsabilidad de la aplicación contenedora validar con el usuario el acceso al correo electrónico, tanto en su onboarding como en caso de actualizar dicha información.
</Warning>

<Info>
  Este endpoint debe implementarse con un mecanismo de autorización seguro (token de acceso) que valide que la solicitud proviene de Justo. El mecanismo específico debe coordinarse entre ambos equipos técnicos.
</Info>


## OpenAPI

````yaml get /users/details/{externalUserId}
openapi: 3.0.0
info:
  title: Embedded Ordering API
  version: 1.0.0
  description: >
    **Propuesta de API que debe ser implementada por la aplicación contenedora**


    Este documento describe una propuesta de los endpoints que las marcas
    (aplicaciones contenedoras) 

    deben implementar para que Justo pueda operar e integrar el marketplace
    dentro de sus aplicaciones.


    Los endpoints, esquemas y especificaciones aquí descritos son una propuesta
    y pueden adaptarse 

    a los requerimientos específicos de cada sistema, siempre y cuando se
    mantenga la funcionalidad 

    necesaria para que Justo pueda realizar las operaciones requeridas.
servers:
  - url: https://your-app-domain.com
    description: >-
      Servidor de la aplicación contenedora (debe ser configurado por cada
      implementación)
security: []
tags:
  - name: auth
    description: Endpoints de autenticación y onboarding
  - name: payments
    description: Endpoints de pagos
  - name: notifications
    description: Webhooks de notificaciones
paths:
  /users/details/{externalUserId}:
    get:
      tags:
        - auth
      summary: Obtener datos del usuario
      description: >
        **Propuesta de endpoint** para obtener los datos del usuario necesarios
        para el onboarding automático.


        Este endpoint debe ser implementado por la aplicación contenedora para
        que Justo pueda obtener 

        la información del usuario durante el proceso de onboarding.
      parameters:
        - name: externalUserId
          in: path
          description: El identificador del usuario en la aplicación contenedora
          required: true
          schema:
            type: string
      responses:
        '200':
          description: La solicitud fue exitosa y se retornaron los datos del usuario
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetails'
        '400':
          description: >-
            Error de validación. El externalUserId proporcionado no es válido o
            no se encontró el usuario
        '401':
          description: No autorizado. El token de autenticación es inválido o ha expirado
        '404':
          description: El usuario con el externalUserId proporcionado no fue encontrado
      security:
        - bearerAuth: []
components:
  schemas:
    UserDetails:
      type: object
      description: >
        **Propuesta de esquema de respuesta.** Estructura propuesta para los
        datos del usuario que 

        la aplicación contenedora debe retornar a Justo.
      required:
        - email
        - firstName
        - lastName
        - phone
      properties:
        email:
          type: string
          format: email
          description: >-
            Correo electrónico del usuario. Este campo es obligatorio ya que en
            Justo el email es la llave primaria de los usuarios
          example: usuario@ejemplo.com
        firstName:
          type: string
          description: Nombre del usuario
          example: Juan
        lastName:
          type: string
          description: Apellido del usuario
          example: Pérez
        phone:
          type: string
          description: Número de teléfono del usuario
          example: '+56912345678'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        **Propuesta de esquema de autenticación.** Token de autenticación que
        debe ser coordinado entre 

        Justo y la aplicación contenedora. El mecanismo específico debe
        acordarse entre ambos equipos técnicos.

````