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

# Registro de renovación

El servicio permite a los usuarios registrar la renovación del convenio de un contrato de bodegaje, adjuntando el soporte del convenio, en línea en formato JSON.

El convenio del contrato, su vigencia y las renovaciones registradas se consultan en los campos `ConvenioNombre`, `ConvenioVigente` y `RenovacionesConvenios` del servicio de [mis bodegas](https://tech.sedierp.com/consulta-de-bodegas.md).

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 registrar la renovación del convenio, 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 del contrato de bodegaje (ContratoID), obtenido del servicio de [mis bodegas](https://tech.sedierp.com/consulta-de-bodegas.md)
* Archivo de soporte del convenio cargado previamente en la plataforma

## Registrar renovación de convenio

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

**ContratoID** `int` *required*

Código único del contrato de bodegaje (ID).

**RutaSoporte** `string` *required*

Ruta del archivo de soporte del convenio (máx. 200 caracteres), por ejemplo el valor `Ruta` que retorna el servicio de [carga de archivos](https://tech.sedierp.com/carga-de-archivos.md).

```bash theme={null}
curl --location 'https://portal.sedierp.com/API/api/Storage/RegistrarRenovacionConvenio' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--data '{
	"ContratoID": 32549,
	"RutaSoporte": "b7e4d913-2c58-4a06-9f31-8d5c0e2a7b64certificado-convenio-2026.pdf"
}'
```

### Validaciones

El servicio realiza las siguientes validaciones antes de registrar la renovación. Si alguna no se cumple, no se registra la renovación y se retorna el error correspondiente.

* `ContratoID` y `RutaSoporte` son obligatorios.
* La renovación se procesa en la plataforma SEDI-ERP de la empresa; si allí se presenta un error, se retorna su detalle.

> [!NOTE]
>
> `RutaSoporte` admite máximo 200 caracteres. Si se envía una ruta más larga, se recorta sin generar error y el soporte queda registrado con una ruta incompleta.

### Respuesta

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"}`). Si falta un campo obligatorio, responde HTTP 400 con el detalle de la validación.

Cuando la renovación se registra correctamente, `rows` contiene un registro con los siguientes campos:

**TipoSalida** `string`

Resultado de la operación: "OK".

**Codigo** `int`

Código de la salida. Retorna 0 cuando la operación es exitosa.

**Descripcion** `string`

"Transacción exitosa."

Cuando ocurre un error, el servicio responde HTTP 400 con el campo `Message`, que contiene el detalle del error precedido de "Error:".

```json Request theme={null}
{
  "ContratoID": 32549,
  "RutaSoporte": "b7e4d913-2c58-4a06-9f31-8d5c0e2a7b64certificado-convenio-2026.pdf"
}
```

```json Exitosa theme={null}
{
    "total": 1,
    "rows": [
        {
            "TipoSalida": "OK",
            "Codigo": 0,
            "Descripcion": "Transacción exitosa."
        }
    ],
    "result": 1
}
```

```json Error theme={null}
{
    "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "errors": {
        "RutaSoporte": [
            "The RutaSoporte field is required."
        ]
    },
    "traceId": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00"
}
```


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