> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/api/v2/channels.md).

# Canales

## 1. Descripción

API para consultar y gestionar canales.

### Operaciones disponibles

* Obtener lista de canales
* Obtener configuración de un canal
* Obtener histórico de un canal
* Obtener estado de un canal
* Actualizar canal
* Actualizar IPs remotas de un canal
* Actualizar directorios asociados a un canal
* Actualizar ruta de salida (outbound) de un canal
* Actualizar ruta de entrada (inbound) de un canal

***

## 2. Obtener lista de canales

### 2.1. Información general

**Método:** `GET`\
**URL:** `https://<tu_servidor>/integration/v2/channels`\
**Descripción:** Obtiene una lista paginada de canales, con la posibilidad de filtrar los canales asociados a un contacto específico mediante su identificador. La respuesta incluye información detallada de cada canal, como su configuración, histórico, estado, directorios asociados, IPs remotas y rutas de entrada/salida.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 2.2. Cabeceras

```http
accept: application/json
Authorization: Bearer <token>
```

### 2.3. Parámetros

| Parámetro | Tipo   | Obligatorio | Descripción                           | Valor por defecto |
| --------- | ------ | ----------- | ------------------------------------- | ----------------- |
| contactId | string | No          | Filtrar por identificador de contacto |                   |
| page      | int    | Sí          | Número de página                      | 1                 |
| size      | int    | Sí          | Tamaño de página                      | 1                 |

### 2.4. Ejemplo de petición

```bash
curl -X 'GET' \
  'https://<tu_servidor>/integration/v2/channels?page=1&size=10&contactId=123e4567-e89b-12d3-a456-426614174000' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...'
```

### 2.5. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código                   | Descripción                        |
| ------------------------ | ---------------------------------- |
| ROLE\_GLOBALADMIN        | Administrador Global               |
| ROLE\_ADMIN              | Administrador                      |
| ROLE\_ADVOPERATOR        | Operador Avanzado                  |
| ROLE\_OPERATOR           | Operador                           |
| ROLE\_CONTROLATOR        | Controlador                        |
| ROLE\_ADMINFF            | Administrador de Firma             |
| ROLE\_ADMINCONTROLATORFF | Administrador Controlador de Firma |

### 2.6. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto paginado con la lista de canales.

**Estructura**

```json
{
  "totalPages": 1073741824,
  "totalElements": 9007199254740991,
  "first": true,
  "last": true,
  "size": 1073741824,
  "content": [
    {
      "name": "string",
      "application": "string",
      "direction": "string",
      "localEntity": "string",
      "remoteEntity": "string",
      "version": "string",
      "editranff": true,
      "emissionff": true,
      "receptionff": true,
      "keyExchangeChannel": true,
      "allowSendDuplicateFiles": true,
      "validationHashFiles": true,
      "deactivateChannel": true,
      "category": "string",
      "connection": {
        "ips": [
          "string"
        ],
        "proxyIps": [
          "string"
        ],
        "advancedConfigurationTransmission": {
          "registersBlock": 1073741824,
          "crc": true,
          "stampLength": 1073741824,
          "timeoutSync": 1073741824,
          "timeoutAck": 1073741824,
          "characters": "string",
          "compression": "string",
          "downloadConf": true
        },
        "advancedConfigurationConnection": {
          "callingEnd": "string",
          "desconnection": true,
          "timeout": 1073741824,
          "retries": 1073741824,
          "rotations": true,
          "validateIp": true,
          "initialHour": "HH:mm:ss",
          "finishHour": "HH:mm:ss"
        }
      },
      "directories": [
        {
          "direction": "string",
          "filePath": "string",
          "alphabet": "string",
          "compression": true,
          "delimitator": "string",
          "fileFormat": "string",
          "registerLength": 1073741824,
          "traduction": "string",
          "translateStatus": true,
          "fileGroupsName": "string"
        }
      ],
      "integrations": {
        "exceptionFile": "string",
        "preEmisionFile": "string",
        "preReceptionFile": "string",
        "postReceptionFile": "string",
        "postReceptionAction": "string",
        "postReceptionDirectory": "string",
        "postReceptionRename": true,
        "postEmisionFile": "string",
        "postEmisionDirectory": "string",
        "postEmisionRename": true,
        "postEmisionAction": "string"
      },
      "security": {
        "cryptography": true,
        "version": "string",
        "ciphrate": "string",
        "localKey": "string",
        "remoteKey": "string",
        "confidentiality": "string",
        "authentication": "string",
        "rsaLocalKey": "string",
        "rsaRemoteKey": "string",
        "rsaLocalKeyName": "string",
        "rsaRemoteKeyName": "string"
      },
      "emission": {
        "active": true,
        "direction": "string"
      },
      "reception": {
        "active": true,
        "direction": "string"
      },
      "users": [
        "string"
      ]
    }
  ],
  "number": 1073741824,
  "sort": {
    "empty": true,
    "sorted": true,
    "unsorted": true
  },
  "numberOfElements": 1073741824,
  "pageable": {
    "offset": 9007199254740991,
    "sort": {
      "empty": true,
      "sorted": true,
      "unsorted": true
    },
    "paged": true,
    "pageNumber": 1073741824,
    "pageSize": 1073741824,
    "unpaged": true
  },
  "empty": true
}
```

**Datos de paginación**

| Campo            | Descripción                             |
| ---------------- | --------------------------------------- |
| totalPages       | Número total de páginas                 |
| totalElements    | Número total de elementos               |
| size             | Tamaño de página                        |
| number           | Página actual                           |
| first            | Indica si es la primera página          |
| last             | Indica si es la última página           |
| numberOfElements | Número de elementos en la página actual |
| empty            | Indica si la página está vacía          |

**Contenido**

| Campo   | Descripción      |
| ------- | ---------------- |
| content | Lista de canales |

***

## 3. Obtener configuración de un canal

### 3.1. Información general

**Método:** `GET`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/configuration`\
**Descripción:** Obtiene la configuración detallada de un canal específico, incluyendo su configuración de conexión, directorios asociados, integraciones y seguridad. Si el canal es bidireccional, la respuesta incluirá información tanto para la emisión como para la recepción.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 3.2. Cabeceras

```http
accept: application/json
Authorization: Bearer <token>
```

### 3.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 3.4. Ejemplo de petición

```bash
curl -X 'GET' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/configuration' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...'
```

### 3.5. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código                   | Descripción                        |
| ------------------------ | ---------------------------------- |
| ROLE\_GLOBALADMIN        | Administrador Global               |
| ROLE\_ADMIN              | Administrador                      |
| ROLE\_ADVOPERATOR        | Operador Avanzado                  |
| ROLE\_OPERATOR           | Operador                           |
| ROLE\_CONTROLATOR        | Controlador                        |
| ROLE\_ADMINFF            | Administrador de Firma             |
| ROLE\_ADMINCONTROLATORFF | Administrador Controlador de Firma |

### 3.6. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración detallada del canal.

**Estructura**

```json
[
  {
    "name": "string",
    "application": "string",
    "direction": "string",
    "localEntity": "string",
    "remoteEntity": "string",
    "version": "string",
    "editranff": true,
    "emissionff": true,
    "receptionff": true,
    "keyExchangeChannel": true,
    "allowSendDuplicateFiles": true,
    "validationHashFiles": true,
    "deactivateChannel": true,
    "category": "string",
    "connection": {
      "ips": [
        "string"
      ],
      "proxyIps": [
        "string"
      ],
      "advancedConfigurationTransmission": {
        "registersBlock": 1073741824,
        "crc": true,
        "stampLength": 1073741824,
        "timeoutSync": 1073741824,
        "timeoutAck": 1073741824,
        "characters": "string",
        "compression": "string",
        "downloadConf": true
      },
      "advancedConfigurationConnection": {
        "callingEnd": "string",
        "desconnection": true,
        "timeout": 1073741824,
        "retries": 1073741824,
        "rotations": true,
        "validateIp": true,
        "initialHour": "HH:mm:ss",
        "finishHour": "HH:mm:ss"
      }
    },
    "directories": [
      {
        "direction": "string",
        "filePath": "string",
        "alphabet": "string",
        "compression": true,
        "delimitator": "string",
        "fileFormat": "string",
        "registerLength": 1073741824,
        "traduction": "string",
        "translateStatus": true,
        "fileGroupsName": "string"
      }
    ],
    "integrations": {
      "exceptionFile": "string",
      "preEmisionFile": "string",
      "preReceptionFile": "string",
      "postReceptionFile": "string",
      "postReceptionAction": "string",
      "postReceptionDirectory": "string",
      "postReceptionRename": true,
      "postEmisionFile": "string",
      "postEmisionDirectory": "string",
      "postEmisionRename": true,
      "postEmisionAction": "string"
    },
    "security": {
      "cryptography": true,
      "version": "string",
      "ciphrate": "string",
      "localKey": "string",
      "remoteKey": "string",
      "confidentiality": "string",
      "authentication": "string",
      "rsaLocalKey": "string",
      "rsaRemoteKey": "string",
      "rsaLocalKeyName": "string",
      "rsaRemoteKeyName": "string"
    },
    "emission": {
      "active": true,
      "direction": "string"
    },
    "reception": {
      "active": true,
      "direction": "string"
    },
    "users": [
      "string"
    ]
  }
]
```

***

## 4. Obtener histórico de un canal

### 4.1. Información general

**Método:** `GET`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/history`\
**Descripción:** Obtiene el histórico de eventos de un canal específico, incluyendo información fecha y hora y descripción del evento. La respuesta puede ser paginada para facilitar la consulta de grandes volúmenes de eventos.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 4.2. Cabeceras

```http
accept: application/json
Authorization: Bearer <token>
```

### 4.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |
| page        | int    | No          | Número de página                                                 | 1                 |
| size        | int    | No          | Tamaño de página                                                 | 1                 |

### 4.4. Ejemplo de petición

```bash
curl -X 'GET' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/history?page=1&size=10' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...'
```

### 4.5. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código                   | Descripción                        |
| ------------------------ | ---------------------------------- |
| ROLE\_GLOBALADMIN        | Administrador Global               |
| ROLE\_ADMIN              | Administrador                      |
| ROLE\_ADVOPERATOR        | Operador Avanzado                  |
| ROLE\_OPERATOR           | Operador                           |
| ROLE\_ADMINFF            | Administrador de Firma             |
| ROLE\_ADMINCONTROLATORFF | Administrador Controlador de Firma |

### 4.6. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve una lista con el histórico de eventos del canal. Opcionalmente, la lista puede ser paginada.

**Estructura**

```json
{
  "totalElements": 9007199254740991,
  "totalPages": 1073741824,
  "size": 1073741824,
  "content": [
    {
      "channel-id": "string",
      "channel-code": "string",
      "datetime": "dd-MM-yyyy HH:mm:ss",
      "event": "string"
    }
  ],
  "number": 1073741824,
  "sort": {
    "empty": true,
    "unsorted": true,
    "sorted": true
  },
  "first": true,
  "last": true,
  "numberOfElements": 1073741824,
  "pageable": {
    "offset": 9007199254740991,
    "sort": {
      "empty": true,
      "unsorted": true,
      "sorted": true
    },
    "pageNumber": 1073741824,
    "pageSize": 1073741824,
    "paged": true,
    "unpaged": true
  },
  "empty": true
}
```

**Datos de paginación**

| Campo            | Descripción                             |
| ---------------- | --------------------------------------- |
| totalPages       | Número total de páginas                 |
| totalElements    | Número total de elementos               |
| size             | Tamaño de página                        |
| number           | Página actual                           |
| first            | Indica si es la primera página          |
| last             | Indica si es la última página           |
| numberOfElements | Número de elementos en la página actual |
| empty            | Indica si la página está vacía          |

**Contenido**

| Campo   | Descripción      |
| ------- | ---------------- |
| content | Lista de eventos |

***

## 5. Obtener estado de un canal

### 5.1. Información general

**Método:** `GET`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/status`\
**Descripción:** Obtiene el estado actual de un canal específico, incluyendo el identificador del canal, su código, dirección (emisión o recepción) y estado. Si el canal es bidireccional, la respuesta incluirá información tanto para la emisión como para la recepción.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 5.2. Cabeceras

```http
accept: application/json
Authorization: Bearer <token>
```

### 5.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 5.4. Ejemplo de petición

```bash
curl -X 'GET' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/status' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...'
```

### 5.5. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código                   | Descripción                        |
| ------------------------ | ---------------------------------- |
| ROLE\_GLOBALADMIN        | Administrador Global               |
| ROLE\_ADMIN              | Administrador                      |
| ROLE\_ADVOPERATOR        | Operador Avanzado                  |
| ROLE\_OPERATOR           | Operador                           |
| ROLE\_ADMINFF            | Administrador de Firma             |
| ROLE\_ADMINCONTROLATORFF | Administrador Controlador de Firma |

### 5.6. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con el estado actual del canal.

**Estructura**

```json
[
  {
    "channel-id": "string",
    "channel-code": "string",
    "channel-direction": "string",
    "channel-status": "string"
  }
]
```

***

## 6. Actualizar canal

### 6.1. Información general

**Método:** `POST`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/update`\
**Descripción:** Permite actualizar la configuración de un canal específico, incluyendo su configuración de conexión, directorios asociados, integraciones y seguridad. La operación requiere que se proporcione toda la información del canal, ya que se realizará una actualización completa de la configuración. Si el canal es bidireccional, se actualiza la configuración de emisión o de recepción según se indique.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 6.2. Cabeceras

```http
accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
```

### 6.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 6.4. Cuerpo de la petición

El cuerpo de la petición debe contener un objeto con la configuración completa del canal, siguiendo la misma estructura que la respuesta de la operación "Obtener configuración de un canal". Es importante asegurarse de incluir toda la información del canal, ya que se realizará una actualización completa de la configuración.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": "string"
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```

### 6.5. Ejemplo de petición

```bash
curl -X 'POST' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/update' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...' \
  -d '{
  "name": "Sample Channel",
  "application": "APP001",
  "direction": "EMISION",
  "localEntity": "123456789",
  "remoteEntity": "987654321",
  "version": "5.3",
  "editranff": false,
  "emissionff": null,
  "receptionff": null,
  "keyExchangeChannel": false,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": false,
  "category": null,
  "connection": {
    "ips": [
        "localhost:7777"
      ],
    "proxyIps": [],
    "advancedConfigurationTransmission": {
      "registersBlock": 50,
      "crc": true,
      "stampLength": 4050,
      "timeoutSync": 60,
      "timeoutAck": null,
      "characters": "ASCII",
      "compression": "NO",
      "downloadConf": false      
    },
    "advancedConfigurationConnection": {
      "callingEnd": "INDISTINTO",
      "desconnection": true,
      "timeout": 30,
      "retries": 0,
      "rotations": false,
      "validateIp": false,
      "initialHour": "00:00:00",
      "finishHour": "00:00:00"
    }
  },
  "directories": [
    {
      "direction": "EMISION",
      "filePath": "/data/example/outbound",
      "alphabet": "NINGUNO",
      "compression": false,
      "delimitator": "NINGUNO",
      "fileFormat": "BINARIO",
      "registerLength": 4020,
      "traduction": "NINGUNO",
      "translateStatus": false,
      "fileGroupsName": null
    }
  ],
  "integrations": {
    "exceptionFile": null,
    "preEmisionFile": null,
    "preReceptionFile": null,
    "postReceptionFile": null,
    "postReceptionAction": null,
    "postReceptionDirectory": null,
    "postReceptionRename": null,
    "postEmisionFile": null",
    "postEmisionDirectory": null,
    "postEmisionRename": null,
    "postEmisionAction": "EMISION_DELETE"
  },
  "security": {
    "cryptography": false,
    "version": null,
    "ciphrate": null,
    "localKey": null,
    "remoteKey": null,
    "confidentiality": null,
    "authentication": null,
    "rsaLocalKey": null,
    "rsaRemoteKey": null,
    "rsaLocalKeyName": null,
    "rsaRemoteKeyName": null
  },
  "emission": null,
  "reception": null,
  "users": [
    "user@example.com"
  ]
}'  
```

### 6.6. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código            | Descripción          |
| ----------------- | -------------------- |
| ROLE\_GLOBALADMIN | Administrador Global |
| ROLE\_ADMIN       | Administrador        |
| ROLE\_ADVOPERATOR | Operador Avanzado    |

### 6.7. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 400    | Solicitud incorrecta       |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración actualizada del canal.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": ""
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```

***

## 7. Actualizar IPs remotas de un canal

### 7.1. Información general

**Método:** `POST`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/update/ips`\
**Descripción:** Permite actualizar las IPs remotas de un canal específico. Esta operación es útil para realizar cambios rápidos en la configuración de conexión sin necesidad de proporcionar toda la información del canal. Si el canal es bidireccional, se actualizan las IPs tanto para el canal de emisión como para el de recepción.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 7.2. Cabeceras

```http
accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
```

### 7.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 7.4. Cuerpo de la petición

El cuerpo de la petición debe contener un objeto con las IPs remotas actualizadas del canal. Es importante asegurarse de incluir todas las IPs remotas que se desean configurar, ya que esta operación reemplazará completamente la lista de IPs remotas del canal.

```json
[
  "string"
]
```

### 7.5. Ejemplo de petición

```bash
curl -X 'POST' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/update/ips' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJBdXRob3JpemF0...' \
  -d '[
  "0.0.0.0:80",
  "localhost:7777"
]'
```

### 7.6. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código            | Descripción          |
| ----------------- | -------------------- |
| ROLE\_GLOBALADMIN | Administrador Global |
| ROLE\_ADMIN       | Administrador        |
| ROLE\_ADVOPERATOR | Operador Avanzado    |

### 7.7. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 400    | Solicitud incorrecta       |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración actualizada del canal.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": ""
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```

***

## 8. Actualizar directorios asociados a un canal

### 8.1. Información general

**Método:** `POST`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/update/directories`\
**Descripción:** Permite actualizar los directorios asociados a un canal específico. Esta operación es útil para realizar cambios rápidos en la configuración de los directorios sin necesidad de proporcionar toda la información del canal. Si el canal es bidireccional, se actualizan los directorios de emisión y/o recepción que se indiquen.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 8.2. Cabeceras

```http
accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
```

### 8.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 8.4. Cuerpo de la petición

El cuerpo de la petición debe contener un objeto con los directorios actualizados del canal. Es importante asegurarse de incluir todos los directorios que se desean configurar, ya que esta operación reemplazará completamente los directorios del canal.

```json
[
  {
    "direction": "EMISION",
    "filePath": "string",
    "alphabet": "NINGUNO",
    "compression": true,
    "delimitator": "NINGUNO",
    "fileFormat": "BINARIO",
    "registerLength": 1073741824,
    "traduction": "NINGUNO",
    "translateStatus": true,
    "fileGroupsName": "string"
  }
]
```

### 8.5. Ejemplo de petición

```bash
curl -X 'POST' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/update/directories' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "direction": "EMISION",
    "filePath": "/data/example/outbound",
    "alphabet": "NINGUNO",
    "compression": false,
    "delimitator": "NINGUNO",
    "fileFormat": "BINARIO",
    "registerLength": 4020,
    "traduction": "NINGUNO",
    "translateStatus": false,
    "fileGroupsName": null  
  },
  {
    "direction": "EMISION",
    "filePath": "/data/example/outbound2",
    "alphabet": "NINGUNO",
    "compression": false,
    "delimitator": "NINGUNO",
    "fileFormat": "BINARIO",
    "registerLength": 4020,
    "traduction": "NINGUNO",
    "translateStatus": false,
    "fileGroupsName": null  
  }  
]'
```

### 8.6. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código            | Descripción          |
| ----------------- | -------------------- |
| ROLE\_GLOBALADMIN | Administrador Global |
| ROLE\_ADMIN       | Administrador        |
| ROLE\_ADVOPERATOR | Operador Avanzado    |

### 8.7. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 400    | Solicitud incorrecta       |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración actualizada del canal.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": ""
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```

***

## 9. Actualizar ruta de salida (outbound) de un canal

### 9.1. Información general

**Método:** `PUT`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/config/outbound-path`\
**Descripción:** Permite actualizar la ruta de salida (outbound) de un canal de emisión específico, sustituyendo uno de los directorios asociados al canal por la ruta proporcionada. La configuración se mantendrá igual que la del directorio que se sustituya. Esta operación es útil para realizar cambios rápidos en la configuración de la ruta de salida sin necesidad de proporcionar toda la información del canal. Si el canal es bidireccional, se actualiza la ruta de salida del canal de emisión.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 9.2. Cabeceras

```http
accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
```

### 9.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 9.4. Cuerpo de la petición

El cuerpo de la petición debe contener un objeto con la nueva ruta completa de salida del canal. Es importante asegurarse de que la ruta proporcionada sea válida y accesible para el canal. Se verificará que la ruta (o el fichero, si se indica) existe si se establece el campo `verifyExists` a `true`.

```json
{
  "path": "string",
  "verifyExists": true
}
```

### 9.5. Ejemplo de petición

```bash
curl -X 'PUT' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/config/outbound-path' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "path": "/data/example/outbound/FILE001.dat",
  "verifyExists": true
}'  
```

### 9.6. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código            | Descripción          |
| ----------------- | -------------------- |
| ROLE\_GLOBALADMIN | Administrador Global |
| ROLE\_ADMIN       | Administrador        |
| ROLE\_ADVOPERATOR | Operador Avanzado    |

### 9.7. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 400    | Solicitud incorrecta       |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración actualizada del canal.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": ""
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```

***

## 10. Actualizar ruta de entrada (inbound) de un canal

### 10.1. Información general

**Método:** `PUT`\
**URL:** `https://<tu_servidor>/integration/v2/channels/{channelCode}/config/inbound-path`\
**Descripción:** Permite actualizar la ruta de entrada (inbound) de un canal de emisión específico, sustituyendo uno de los directorios asociados al canal por la ruta proporcionada. La configuración se mantendrá igual que la del directorio que se sustituya. Esta operación es útil para realizar cambios rápidos en la configuración de la ruta de entrada sin necesidad de proporcionar toda la información del canal. Si el canal es bidireccional, se actualiza la ruta de entrada del canal de recepción.\
Esta operación requiere autenticación y está restringida a ciertos roles de usuario.

### 10.2. Cabeceras

```http
accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
```

### 10.3. Parámetros

| Parámetro   | Tipo   | Obligatorio | Descripción                                                      | Valor por defecto |
| ----------- | ------ | ----------- | ---------------------------------------------------------------- | ----------------- |
| channelCode | string | Sí          | Código del canal. Formato: `codigoLocal-codigoRemoto-aplicacion` |                   |

### 10.4. Cuerpo de la petición

El cuerpo de la petición debe contener un objeto con la nueva ruta completa de entrada del canal. Es importante asegurarse de que la ruta proporcionada sea válida y accesible para el canal. Se verificará que la ruta existe si se establece el campo `verifyExists` a `true`.

```json
{
  "path": "string",
  "verifyExists": true
}
```

### 10.5. Ejemplo de petición

```bash
curl -X 'PUT' \
  'https://<tu_servidor>/integration/v2/channels/123456789-987654321-APP001/config/inbound-path' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "path": "/data/example/inbound-new",
  "verifyExists": true
}'  
```

### 10.6. Seguridad

#### Autenticación

* Esta operación requiere autenticación mediante un token JWT válido.
* El token debe ser incluido en la cabecera `Authorization` con el formato `Bearer <token>`.

#### Roles autorizados

| Código            | Descripción          |
| ----------------- | -------------------- |
| ROLE\_GLOBALADMIN | Administrador Global |
| ROLE\_ADMIN       | Administrador        |
| ROLE\_ADVOPERATOR | Operador Avanzado    |

### 10.7. Respuestas

#### Códigos de estado

| Código | Descripción                |
| ------ | -------------------------- |
| 200    | Operación exitosa          |
| 400    | Solicitud incorrecta       |
| 401    | No autorizado              |
| 403    | Prohibido                  |
| 404    | No encontrado              |
| 500    | Error interno del servidor |

#### Respuesta 200 OK

Devuelve un objeto con la configuración actualizada del canal.

```json
{
  "name": "string",
  "application": "string",
  "direction": "string",
  "localEntity": "string",
  "remoteEntity": "string",
  "version": "string",
  "editranff": true,
  "emissionff": true,
  "receptionff": true,
  "keyExchangeChannel": true,
  "allowSendDuplicateFiles": true,
  "validationHashFiles": true,
  "deactivateChannel": true,
  "category": "string",
  "connection": {
    "ips": [
      "string"
    ],
    "proxyIps": [
      "string"
    ],
    "advancedConfigurationTransmission": {
      "registersBlock": 1073741824,
      "crc": true,
      "stampLength": 1073741824,
      "timeoutSync": 1073741824,
      "timeoutAck": 1073741824,
      "characters": "string",
      "compression": "string",
      "downloadConf": true
    },
    "advancedConfigurationConnection": {
      "callingEnd": "string",
      "desconnection": true,
      "timeout": 1073741824,
      "retries": 1073741824,
      "rotations": true,
      "validateIp": true,
      "initialHour": "HH:mm:ss",
      "finishHour": "HH:mm:ss"
    }
  },
  "directories": [
    {
      "direction": "string",
      "filePath": "string",
      "alphabet": "string",
      "compression": true,
      "delimitator": "string",
      "fileFormat": "string",
      "registerLength": 1073741824,
      "traduction": "string",
      "translateStatus": true,
      "fileGroupsName": "string"
    }
  ],
  "integrations": {
    "exceptionFile": "string",
    "preEmisionFile": "string",
    "preReceptionFile": "string",
    "postReceptionFile": "string",
    "postReceptionAction": "string",
    "postReceptionDirectory": "string",
    "postReceptionRename": true,
    "postEmisionFile": "string",
    "postEmisionDirectory": "string",
    "postEmisionRename": true,
    "postEmisionAction": ""
  },
  "security": {
    "cryptography": true,
    "version": "string",
    "ciphrate": "string",
    "localKey": "string",
    "remoteKey": "string",
    "confidentiality": "string",
    "authentication": "string",
    "rsaLocalKey": "string",
    "rsaRemoteKey": "string",
    "rsaLocalKeyName": "string",
    "rsaRemoteKeyName": "string"
  },
  "emission": {
    "active": true,
    "direction": "string"
  },
  "reception": {
    "active": true,
    "direction": "string"
  },
  "users": [
    "string"
  ]
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/editran-connect-v3.3/api/v2/channels.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
