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

# Lista de errores de SLC

> Consulta los códigos de error de Lerian SLC, el estado HTTP que lleva cada uno y los códigos de rechazo de Nuclea que recibes en una operación de liquidación.

**Formato de error**

Lerian SLC devuelve los errores como problem details de RFC 9457 con el tipo de medio `application/problem+json`:

<CodeGroup>
  ```json JSON theme={null}
  {
    "type": "https://errors.lerian.studio/v1/SLC-0105",
    "title": "Conflict",
    "status": 409,
    "detail": "operation is not in a state that permits this transition",
    "code": "SLC-0105"
  }
  ```
</CodeGroup>

**Definiciones de campos**

* **`type`** – Un URI que identifica el error en el catálogo de errores de Lerian, construido como `https://errors.lerian.studio/v1/<code>`.
* **`title`** – El texto del estado HTTP, por ejemplo `Conflict` o `Unprocessable Entity`. Proviene del estado, no del nombre del error.
* **`status`** – El código de estado HTTP, repetido de la línea de estado de la respuesta.
* **`detail`** – Una explicación específica de esta ocurrencia. Una respuesta con estado 500 o superior lleva el texto fijo `internal error`, así que usa `code` para decidir la rama en lugar de analizar este campo.
* **`code`** – El identificador estable para máquinas, con el formato `SLC-NNNN`. Usa este campo para decidir la rama.
* **`errors`** – Una lista de detalles por campo, cada uno con una `location`, un `message` y el `value` que causó el problema. Un fallo de validación de esquema lista una entrada por campo.

## Errores de plataforma y de solicitud

***

Estos códigos pueden llegar desde cualquier endpoint. Cada uno describe la solicitud, la credencial o la disponibilidad del servicio, no la operación de liquidación en sí.

| `code`   | Descripción                                                                                                                | Estado |
| -------- | -------------------------------------------------------------------------------------------------------------------------- | ------ |
| SLC-0001 | La solicitud está mal formada. Un payload, un filtro o un valor de la ruta no pasó la validación.                          | 400    |
| SLC-0002 | El servicio encontró una condición inesperada. El `detail` muestra `internal error`.                                       | 500    |
| SLC-0003 | La solicitud llegó a una ruta protegida sin un token bearer válido.                                                        | 401    |
| SLC-0004 | La credencial está autenticada, pero carece del permiso que exige la ruta.                                                 | 403    |
| SLC-0005 | El recurso solicitado no existe.                                                                                           | 404    |
| SLC-0006 | La solicitud está bien formada, y una regla de negocio la rechaza.                                                         | 422    |
| SLC-0007 | El recurso está en un estado que prohíbe la acción, como la repetición de una entrega de webhook que ya se envió.          | 409    |
| SLC-0008 | Un transporte o una dependencia no está disponible. La condición se resuelve sola, así que reintenta la solicitud.         | 503    |
| SLC-0010 | El cuerpo de la solicitud supera el tamaño aceptado.                                                                       | 413    |
| SLC-0011 | Una condición 4xx sin un código más específico. Un `405 Method Not Allowed` conserva su propio estado y lleva este código. | 4xx    |
| SLC-0012 | La ruta está montada, y la configuración de tu despliegue no la deja disponible.                                           | 501    |

## Errores de operación de liquidación

***

Estos códigos provienen del dominio de operaciones. Describen la instrucción de liquidación que enviaste, la operación original a la que apunta una cancelación, o la respuesta que recibió una conciliación de la contraparte.

| `code`   | Descripción                                                                                                                                                                                                          | Estado |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| SLC-0102 | Un ISPB en el cuerpo de la solicitud está ausente o no tiene ocho dígitos. Esto abarca los ISPB del acreedor, del domicilio y de la liquidación, el registro de la contraparte y el participante de la conciliación. | 422    |
| SLC-0103 | El `operationType` es un valor reconocido que no está habilitado para el envío.                                                                                                                                      | 422    |
| SLC-0104 | El `externalId` ya pertenece a otra operación.                                                                                                                                                                       | 409    |
| SLC-0105 | La operación está en un estado que no permite la transición que solicitaste.                                                                                                                                         | 409    |
| SLC-0106 | La operación que nombra la solicitud no existe.                                                                                                                                                                      | 404    |
| SLC-0107 | El lote NDJSON lleva más líneas que el límite configurado.                                                                                                                                                           | 413    |
| SLC-0108 | El NUliquid que suministraste no tiene 21 posiciones. La verificación de formato se ejecuta antes de cualquier búsqueda.                                                                                             | 422    |
| SLC-0109 | El `participantId` no está registrado.                                                                                                                                                                               | 422    |
| SLC-0110 | La cadena de reintentos de la operación alcanzó su límite.                                                                                                                                                           | 409    |
| SLC-0111 | Un anticipo llegó sin la justificación que exige. El anticipo se audita, así que el motivo y la evidencia son obligatorios.                                                                                          | 400    |
| SLC-0112 | Ya existe una operación activa para el mismo `externalId`. Converge en esa operación en lugar de crear una segunda instrucción.                                                                                      | 409    |
| SLC-0113 | La operación original ya no acepta una cancelación. Ya está cancelada, en liquidación, liquidada o confirmada en D+1.                                                                                                | 409    |
| SLC-0114 | El `originalOperationId` al que hace referencia una cancelación no existe.                                                                                                                                           | 422    |
| SLC-0115 | La operación original lleva un tipo que no acepta cancelación. Solo los movimientos CREDIT y DEBIT se pueden cancelar.                                                                                               | 422    |
| SLC-0116 | Nuclea todavía no aceptó la operación original, así que no tiene NUliquid y la cancelación no tiene movimiento que bloquear.                                                                                         | 409    |
| SLC-0117 | Ya hay una cancelación en curso para la misma operación original.                                                                                                                                                    | 409    |
| SLC-0118 | El reintento apunta a una operación rechazada cuyo dinero ya se liquidó.                                                                                                                                             | 409    |
| SLC-0119 | La operación no tiene NUliquid, así que la conciliación no tiene una clave con la cual consultar. El `detail` nombra la recuperación adecuada para el estado actual.                                                 | 409    |
| SLC-0120 | El NUliquid de la operación queda fuera del horizonte de consulta en línea de 30 días. Reintentar no ayuda, porque el horizonte se aleja cada vez más.                                                               | 409    |
| SLC-0121 | La contraparte respondió con un estado de liquidación fuera del vocabulario mapeado, y la conciliación no registró nada. El `detail` cita el token para que puedas plantearlo con Nuclea.                            | 409    |
| SLC-0122 | La contraparte respondió sobre un NUliquid distinto del consultado, así que la respuesta describe otra operación y la conciliación no registró nada.                                                                 | 409    |
| SLC-0123 | La consulta de liquidación no produjo respuesta sobre la operación debido a una condición en el canal. El `detail` nombra la condición.                                                                              | 409    |
| SLC-0150 | Una cancelación llegó sin la categoría numérica de motivo que exige el layout de Nuclea.                                                                                                                             | 422    |

## Códigos de rechazo de Nuclea

***

Nuclea, la cámara de compensación que opera la SLC, responde a un envío o a un archivo de retorno con sus propios códigos de error de negocio, con el formato `ESLCNNNN`. Lerian SLC los registra contra la operación y los devuelve sin cambios. La respuesta de detalle de la operación lleva `eslcErrors`, un arreglo de los códigos registrados que está vacío cuando la operación no tiene ninguno, y `lastError`, los códigos registrados unidos en una sola cadena. Cada valor de código llega textual desde la red, así que interprétalo como vocabulario de Nuclea y no como un código de Lerian.

Nuclea define 85 de estos códigos en su manual de layout de SLC. La siguiente tabla cubre los que cambian lo que debes hacer a continuación.

| `code`   | Descripción                                                                                   | Qué hacer                                                                                                                                                                                                |
| -------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ESLC0006 | La fecha no es válida.                                                                        | Corrige la fecha y envía de nuevo.                                                                                                                                                                       |
| ESLC0007 | El CPF o el CNPJ no es válido.                                                                | Corrige el número de documento y envía de nuevo.                                                                                                                                                         |
| ESLC0029 | La solicitud llegó fuera de la ventana programada.                                            | Envíala en la siguiente ventana. Lerian SLC pone en cola una operación enviada fuera de su ventana y la despacha cuando la ventana se abre. Consulta [Operaciones de SLC](/es/rails/slc/slc-operations). |
| ESLC0042 | No existe una inscripción para esta función.                                                  | Completa la inscripción con Nuclea y luego envía de nuevo.                                                                                                                                               |
| ESLC0097 | El número de liquidación no está registrado.                                                  | Verifica el NUliquid al que hace referencia la solicitud.                                                                                                                                                |
| ESLC0119 | El participante administrado no está administrado por el participante principal.              | Corrige el registro del participante con Nuclea. El mismo archivo tiene éxito en cuanto el registro coincide.                                                                                            |
| ESLC0123 | El participante no se inscribió en la función.                                                | Completa la inscripción con Nuclea. El mismo archivo tiene éxito después.                                                                                                                                |
| ESLC0140 | El código de instituidor del arreglo no está permitido para el tipo de archivo enviado.       | Corrige el registro del arreglo y luego envía de nuevo.                                                                                                                                                  |
| ESLC0161 | Un participante administrado no puede enviar por HTTP.                                        | Envía a través del transporte registrado para ese participante.                                                                                                                                          |
| ESLC0163 | La fecha de pago no está permitida para una cancelación.                                      | Cancela dentro del rango de fechas que permite la operación original.                                                                                                                                    |
| ESLC0164 | El registro ya está cancelado, liquidado o en liquidación, así que no acepta una cancelación. | Detén la cancelación. Lerian SLC rechaza la misma condición localmente con `SLC-0113`.                                                                                                                   |
| ESLC1017 | No se encontraron los números de liquidación para una cancelación en la fecha indicada.       | Verifica la fecha y los números de liquidación a los que hace referencia la solicitud.                                                                                                                   |

<Note>
  Cuatro de estos códigos te llegan en un rechazo síncrono del envío de un archivo: `ESLC0119`, `ESLC0123`, `ESLC0140` y `ESLC0161`. Llegan en el evento `operation.forward_rejected`, en `rejectionCode`, en lugar de en el archivo de retorno. Cada uno es una condición de registro o de inscripción que se aplica a todos los archivos que envía el participante, y un cambio de registro en Nuclea la resuelve. El archivo en sí no necesita ninguna edición.
</Note>

**Los códigos restantes**

El resto del catálogo describe el registro enviado o el registro del participante. Las familias más grandes son:

* **Dominio y formato de campo** – Un valor está fuera del dominio que permite el layout, o un segmento lleva el formato incorrecto. Aquí aparecen los códigos de moneda, los tipos de persona, los instituidores de arreglo y los códigos de ocurrencia.
* **Registro e inscripción** – Un CNPJ, un ISPB o una relación de participante difiere de lo que Nuclea tiene registrado para el adquirente.
* **Números de control duplicados** – Un número de control o un nombre de archivo repite uno que Nuclea ya registró.
* **Fechas y períodos de reporte** – Una fecha de pago, una fecha de referencia o un rango de reporte está fuera de lo que permite el tipo de producto.
* **Estado del registro y códigos de ocurrencia** – El código de ocurrencia no corresponde al estado actual del registro, como un registro liquidado o uno cancelado.
* **Períodos de retorno** – El registro está dentro de un período de retorno, y Nuclea indica el tipo de archivo que lleva la corrección.
* **Límites y volúmenes** – Un monto de pago, una cantidad de archivos o una cantidad de registros supera el máximo aceptado.

Un código de cualquiera de estas familias te llega en el archivo de retorno, a través de `eslcErrors` en la operación. Cita el código cuando plantees el caso con Nuclea, porque es el identificador con el que trabaja el soporte de Nuclea.
