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

# Inicio de sesión

El servicio permite a los usuarios iniciar sesión en el portal de clientes con su tipo y número de documento y su contraseña, en línea en formato JSON.

Como resultado se obtiene el **AccessToken** (JWT) que se debe enviar en el encabezado "Authorization" de los demás servicios del portal, y la URL de acceso directo al portal con la sesión iniciada.

El método de solicitud es POST y no requiere autenticación.

## Prerequisitos

Antes de iniciar sesión, se debe contar con los siguientes datos:

* Identificador único de la empresa (UUID) asignado por SEDI-ERP
* Usuario registrado en el portal con contraseña asignada

## Iniciar sesión

**Request URL:** [https://portal.sedierp.com/API/api/Accesos/Login](https://portal.sedierp.com/API/api/Accesos/Login)\
**Tipo:** POST \
**Content Type:** application/json

**TipoDocumentoID** `int` *required*

Código del tipo de documento de identificación del usuario. Se obtiene del servicio de tipos de documentos.

![tipos-documentos](https://mintcdn.com/sedi-solutions-sas/GIw7WqTvI4uIXmWB/images/tipos-documentos.png?fit=max\&auto=format\&n=GIw7WqTvI4uIXmWB\&q=85\&s=4972cedc7a553835f30e959fa753fd0a)

**Documento** `string` *required*

Número de documento de identificación del usuario.

**Contrasena** `string` *required*

Contraseña del usuario.

**UUID** `GUID` *required*

Identificador único de la empresa.

```bash theme={null}
curl --location 'https://portal.sedierp.com/API/api/Accesos/Login' \
--header 'Content-Type: application/json' \
--data '{
	"TipoDocumentoID": 1,
	"Documento": "1032456789",
	"Contrasena": "<CONTRASENA>",
	"UUID": "2be0e514-4eb7-4677-b4b0-4a08936bfbee"
}'
```

### Validaciones

El servicio realiza las siguientes validaciones antes de iniciar la sesión. Si alguna no se cumple, no se inicia la sesión y se retorna HTTP 401.

* `TipoDocumentoID`, `Documento`, `Contrasena` y `UUID` son obligatorios.
* El tipo y número de documento deben corresponder a un usuario de la empresa.
* El usuario debe tener una contraseña asignada (los usuarios nuevos deben crear su cuenta primero).
* La contraseña debe ser correcta. Cada intento con contraseña incorrecta suma un intento fallido al usuario.
* El usuario no debe superar 3 intentos fallidos. Si los supera, debe recuperar su contraseña con el servicio de [envío de correo de recuperación](https://tech.sedierp.com/enviar-correo-recuperacion.md).

> [!NOTE]
>
> Por seguridad, el servicio responde siempre el mismo mensaje "Usuario o contraseña incorrectos" sin importar cuál validación falló.

### Respuesta

**AccessToken** `string`

Token de acceso (JWT) que se debe enviar en el encabezado "Authorization" de los demás servicios del portal, con el formato `Bearer <AccessToken>`.

**expires** `datetime`

Fecha y hora de vencimiento del AccessToken, en hora UTC. Por defecto el token tiene una vigencia de 12 horas.

**UrlAcceso** `string`

URL de acceso directo al portal de clientes con la sesión iniciada.

> [!NOTE]
>
> Cada inicio de sesión genera un nuevo token interno para el usuario. Al iniciar sesión de nuevo (en otro navegador o dispositivo), los AccessToken emitidos antes para ese usuario dejan de ser válidos en los servicios que validan la sesión, como el de [datos del cliente](https://tech.sedierp.com/extranet/datos).

```json Request theme={null}
{
  "TipoDocumentoID": 1,
  "Documento": "1032456789",
  "Contrasena": "<CONTRASENA>",
  "UUID": "2be0e514-4eb7-4677-b4b0-4a08936bfbee"
}
```

```json Exitosa theme={null}
{
    "AccessToken": "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0..x7Qm2...",
    "expires": "2026-11-05T02:41:18",
    "UrlAcceso": "https://clientes.empresa.com/Home/Inicio?AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwidHlwIjoiSldUIn0..x7Qm2...&UUID=2be0e514-4eb7-4677-b4b0-4a08936bfbee"
}
```

```json Error theme={null}
{
    "Code": 401,
    "Message": "Usuario o contraseña incorrectos"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.