> ## 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.

# Consultar contratos

El servicio permite a los usuarios del portal de clientes consultar el listado de sus contratos de arrendamiento, con el inmueble asociado y la ruta del documento del contrato, en línea en formato JSON.

El método de solicitud es POST y se requiere un encabezado "Authorization" para la autenticación, que debe contener el **AccessToken** (JWT) obtenido previamente del servicio de [inicio de sesión](https://tech.sedierp.com/inicio-de-sesion.md).

## Prerequisitos

Antes de realizar la consulta de contratos, se debe contar con los siguientes datos:

* AccessToken solicitado mediante el servicio de [inicio de sesión](https://tech.sedierp.com/inicio-de-sesion.md)
* Código único del cliente (TerceroID) obtenido del servicio de [datos del cliente](https://tech.sedierp.com/datos-del-cliente.md)

## Consultar contratos

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

**TerceroID** `int` *required*

Código único del cliente (ID) que inició sesión. Solo se retornan contratos si corresponde al cliente del AccessToken.

**InmuebleID** `int`

Filtro de búsqueda por código único del inmueble (ID).

**Page** `int`

Página de consulta, por defecto (1).

**Rows** `int`

Cantidad de registros por página de consulta, por defecto (10). Si se envía 0, se retornan todos los registros sin paginar.

**SortColumn** `string`

Nombre de la columna de la respuesta por la cual se ordenan los registros (ej. `Consecutivo`). Por defecto se ordena por el consecutivo del inmueble de forma ascendente.

**SortDirection** `string`

Dirección del ordenamiento: `ASC` (ascendente) o `DESC` (descendente). Es obligatorio cuando se envía `SortColumn`.

**FullSearch** `string`

Campo de consulta múltiple. Busca el texto enviado en cualquier parte del consecutivo del contrato, el consecutivo del inmueble o la dirección del inmueble.

```bash theme={null}
curl --location 'https://portal.sedierp.com/API/api/Inmobiliaria/ContratosConsultar' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data '{
	"TerceroID": 48213,
	"InmuebleID": null,
	"Page": 1,
	"Rows": 10,
	"SortColumn": null,
	"SortDirection": null,
	"FullSearch": null
}'
```

> [!NOTE]
>
> Si el `TerceroID` no corresponde al cliente del AccessToken, si no se envía, o si se envía `SortColumn` sin `SortDirection`, el servicio no retorna error: responde `rows` vacío.

### Respuesta

El servicio retorna el listado de contratos de arrendamiento del cliente, sin filtrar por estado del contrato. El campo `total` corresponde a la cantidad de registros retornados en la página consultada. Cada registro de `rows` contiene los siguientes campos:

**ContratoID** `int`

Código único del contrato (ID).

**InmuebleID** `int`

Código único del inmueble arrendado (ID).

**Consecutivo** `int`

Consecutivo del contrato.

**InmuebleConsecutivo** `int`

Consecutivo (número) del inmueble.

**ContratoRuta** `string`

Ruta del documento del contrato, tal como está almacenada en la plataforma (puede ser una referencia `cdn://`). Es null cuando el contrato no tiene documento cargado.

**Direccion** `string`

Dirección del inmueble.

**UniqueID** `GUID`

Identificador único del contrato.

Si `SortColumn` no corresponde a una columna de la respuesta, el servicio responde HTTP 400 con el error de base de datos en `Message`.

Si el AccessToken no se envía, es inválido o expiró, el servicio responde HTTP 401 (`{"Code": 401, "Message": "El TokenAcceso no es valido"}`).

```json Request theme={null}
{
  "TerceroID": 48213,
  "InmuebleID": null,
  "Page": 1,
  "Rows": 10,
  "SortColumn": null,
  "SortDirection": null,
  "FullSearch": null
}
```

```json Exitosa theme={null}
{
    "total": 2,
    "rows": [
        {
            "ContratoID": 1874,
            "InmuebleID": 932,
            "Consecutivo": 1502,
            "InmuebleConsecutivo": 412,
            "ContratoRuta": "cdn://3e7b2a91-5c4d-4f08-9a61-d2c8e5f71b30",
            "Direccion": "CL 45 # 12 - 30 AP 501",
            "UniqueID": "0f6c9a2e-4b17-4d83-a5e9-7c21b8d3f604"
        },
        {
            "ContratoID": 2210,
            "InmuebleID": 1047,
            "Consecutivo": 1788,
            "InmuebleConsecutivo": 538,
            "ContratoRuta": null,
            "Direccion": "KR 15 # 93 - 47 LC 2",
            "UniqueID": "b82d41f7-0e6a-4c95-8f3b-19a7e6c25d48"
        }
    ],
    "result": 1
}
```

```json Sin resultados theme={null}
{
    "total": 0,
    "rows": [],
    "result": 1
}
```

```json Error theme={null}
{
    "Message": "Invalid column name 'Nombre'., "
}
```


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