> ## 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 erros do SLC

> Consulte os códigos de erro do Lerian SLC, o status HTTP que cada um carrega e os códigos de rejeição da Núclea que chegam até você em uma operação de liquidação.

**Formato de erro**

O Lerian SLC retorna erros como problem details da RFC 9457, com o media type `application/problem+json`:

```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",
  "correlationId": "req-7a3f9c2e"
}
```

**Definições de campo**

* **`type`** – Um URI que identifica o erro no catálogo de erros da Lerian, construído como `https://errors.lerian.studio/v1/<code>`.
* **`title`** – O texto do status HTTP, por exemplo `Conflict` ou `Unprocessable Entity`. Vem do status, não do nome do erro.
* **`status`** – O código de status HTTP, repetido da linha de status da resposta.
* **`detail`** – Uma explicação específica dessa ocorrência. Uma resposta com status 500 ou acima carrega o texto fixo `internal error`, então decida com base em `code` em vez de analisar esse campo.
* **`code`** – O identificador estável de máquina, no formato `SLC-NNNN`. Decida com base nesse campo.
* **`correlationId`** – O identificador de correlação com escopo de requisição, o mesmo valor do header `X-Request-Id` da resposta. Cite esse valor em uma solicitação de suporte.
* **`errors`** – Uma lista de detalhes por campo, cada um com `location`, `message` e o `value` responsável pelo erro. Uma falha de validação de schema lista uma entrada por campo.

## Erros de plataforma e requisição

***

Esses códigos podem chegar de qualquer endpoint. Cada um descreve a requisição, a credencial ou a disponibilidade do serviço, e não a operação de liquidação em si.

| `code` | Descrição | Status |
| - | - | - |
| SLC-0001 | A requisição está malformada. O corpo não pode ser interpretado, falta um header obrigatório ou um valor falha em uma checagem de formato. | 400 |
| SLC-0002 | O serviço encontrou uma condição inesperada. O `detail` traz `internal error`. | 500 |
| SLC-0003 | A requisição chegou a uma rota protegida sem um bearer token válido. | 401 |
| SLC-0004 | A credencial está autenticada, mas não tem a permissão que a rota exige. | 403 |
| SLC-0005 | O recurso solicitado não existe. | 404 |
| SLC-0006 | A requisição falha na validação de schema, ou uma regra de negócio a recusa. Uma falha de schema lista cada campo em `errors`. | 422 |
| SLC-0007 | A requisição conflita com o estado atual, como uma repetição de entrega de webhook que já foi enviada, ou uma chave `X-Idempotency` que está em uso ou que veio com um corpo diferente. | 409 |
| SLC-0008 | Um transporte ou uma dependência está indisponível. | 503 |
| SLC-0009 | A requisição excede o rate limit. O header `Retry-After` informa quando tentar novamente. | 429 |
| SLC-0010 | O corpo da requisição está acima do tamanho aceito. | 413 |
| SLC-0011 | Uma condição 4xx sem um código mais específico. Um `405 Method Not Allowed` mantém seu próprio status e carrega esse código. | 4xx |
| SLC-0012 | A rota está montada, e a configuração do seu deploy não a disponibiliza. | 501 |

## Erros de operação de liquidação

***

Esses códigos vêm do domínio de operações. Descrevem a instrução de liquidação que você enviou, a operação original que um cancelamento visa, ou a resposta que uma conciliação recebeu da contraparte.

| `code` | Descrição | Status |
| - | - | - |
| SLC-0102 | Um ISPB na requisição não tem oito caracteres de dígitos ou letras maiúsculas. Isso cobre os ISPBs de credor, domicílio e liquidação, um registro de participante e o participante da conciliação. | 422 |
| SLC-0103 | O `operationType` é um valor reconhecido que não está habilitado para envio. | 422 |
| SLC-0104 | O `externalId` já pertence a outra operação. | 409 |
| SLC-0105 | A operação está em um estado que não permite a transição solicitada. | 409 |
| SLC-0106 | Um comando nomeia uma operação que não existe. Em uma conciliação, isso também pode significar que a Núclea não tem registro para o NUliquid. | 404 |
| SLC-0107 | O lote NDJSON carrega mais linhas ou mais bytes do que o limite configurado. O Lerian SLC verifica os dois limites antes de salvar qualquer coisa, então não salva nenhuma operação. | 413 |
| SLC-0108 | O NUliquid fornecido não tem 21 dígitos, ou o prefixo `AAAAMMDD` dele não é uma data válida. A checagem de formato roda antes de qualquer busca. | 422 |
| SLC-0109 | O `participantId` não está registrado. | 422 |
| SLC-0110 | A cadeia de novas tentativas da operação atingiu o limite. | 409 |
| SLC-0111 | Um avanço ou uma conciliação chegou sem a justificativa. Um avanço precisa de um motivo e de evidência. Uma conciliação precisa de um motivo. | 400 |
| SLC-0112 | Uma nova tentativa encontra uma operação ativa para o mesmo `externalId`. Convirja para essa operação em vez de criar uma segunda instrução. | 409 |
| SLC-0113 | A operação original não aceita mais um cancelamento. O estado dela é CONFIRMED, SETTLED, D1\_CONFIRMED ou CANCELLED, ou o valor dela já liquidou. | 409 |
| SLC-0114 | O `originalOperationId` referenciado por um cancelamento não existe. | 422 |
| SLC-0115 | A operação original carrega um tipo que não aceita cancelamento. Apenas movimentos CREDIT e DEBIT são canceláveis. | 422 |
| SLC-0116 | A Núclea ainda não aceitou a operação original, então ela não tem NUliquid e o cancelamento não tem movimento para bloquear. | 409 |
| SLC-0117 | Já há um cancelamento em andamento para a mesma operação original. | 409 |
| SLC-0118 | A nova tentativa visa uma operação rejeitada cujo valor já liquidou. | 409 |
| SLC-0119 | A operação não tem NUliquid, então a conciliação não tem chave para consultar. O `detail` nomeia a recuperação adequada ao estado atual. | 409 |
| SLC-0120 | O NUliquid da operação está fora do horizonte de consulta online de 30 dias. Uma nova tentativa não ajuda, porque o horizonte se afasta ainda mais. | 409 |
| SLC-0121 | A contraparte respondeu um status de liquidação fora do vocabulário mapeado, e a conciliação não registrou nada. O `detail` cita o token para que você possa levá-lo à Núclea. | 409 |
| SLC-0122 | A contraparte respondeu sobre um NUliquid diferente do consultado, então a resposta descreve outra operação e a conciliação não registrou nada. | 409 |
| SLC-0123 | A consulta de liquidação não produziu resposta sobre a operação devido a uma condição no canal. O `detail` nomeia a condição. | 409 |
| SLC-0150 | Um cancelamento chegou sem a categoria numérica de motivo exigida pelo layout da Núclea. | 422 |

## Códigos de rejeição da Núclea

***

A Núclea, a câmara de compensação que opera o SLC, responde a um envio ou a um arquivo de retorno com seus próprios códigos de erro de negócio, no formato `ESLCNNNN`. O Lerian SLC os registra na operação e os devolve sem alteração. A resposta de detalhe da operação carrega `eslcErrors`, um array dos códigos registrados que fica vazio quando a operação não tem nenhum. Ela também carrega `lastError`, os códigos registrados unidos em uma única string, ou null quando não há nenhum. `eslcErrors` também pode carregar o código de ocorrência que uma IF Domicílio retorna. Cada valor chega literalmente da rede, então leia-o como vocabulário da contraparte, não como um código da Lerian.

A Núclea define 85 desses códigos. A tabela abaixo cobre os que mudam o que você faz a seguir.

| `code` | Descrição | O que fazer |
| - | - | - |
| ESLC0006 | A data é inválida. | Corrija a data e envie novamente. |
| ESLC0007 | O CPF ou CNPJ é inválido. | Corrija o número do documento e envie novamente. |
| ESLC0029 | A requisição chegou fora da janela programada. | Envie na próxima janela. Veja [Operações do SLC](https://docs.lerian.studio/pt/rails/slc/slc-operations.md). |
| ESLC0042 | Não existe um credenciamento para esse recurso. | Complete o credenciamento com a Núclea e envie novamente. |
| ESLC0097 | O número de liquidação não está registrado. | Verifique o NUliquid referenciado pela requisição. |
| ESLC0119 | O participante administrado não é administrado pelo participante principal. | Corrija o registro do participante junto à Núclea. O mesmo arquivo é aceito assim que o registro corresponder. |
| ESLC0123 | O participante não se credenciou no recurso. | Complete o credenciamento com a Núclea. O mesmo arquivo é aceito depois disso. |
| ESLC0140 | O código do instituidor do arranjo não é permitido para o tipo de arquivo enviado. | Corrija o registro do arranjo ou o código do arranjo no arquivo e envie novamente. |
| ESLC0161 | Um participante administrado não pode enviar via HTTP. | Envie pelo transporte registrado para esse participante. |
| ESLC0163 | A data de pagamento não é permitida para um cancelamento. | Cancele dentro do intervalo de datas que a operação original permite. |
| ESLC0164 | O registro já está cancelado, liquidado ou em liquidação, então não aceita um cancelamento. | Interrompa o cancelamento. O Lerian SLC recusa a mesma condição localmente com `SLC-0113`. |
| ESLC1017 | Os números de liquidação para um cancelamento na data informada não foram encontrados. | Verifique a data e os números de liquidação referenciados pela requisição. |

> [!NOTE]
>
> A Núclea pode recusar um envio de arquivo de forma síncrona com um de quatro códigos: `ESLC0119`, `ESLC0123`, `ESLC0140` e `ESLC0161`. A tabela acima informa a correção de cada código. [Operações do SLC](https://docs.lerian.studio/pt/rails/slc/slc-operations.md) descreve o orçamento de tentativas de transmissão.

**Os demais códigos**

O restante do catálogo descreve o registro enviado ou o registro do participante. As maiores famílias são:

* **Domínio e formato de campo** – Um valor está fora do domínio que o layout permite, ou um segmento carrega o formato errado. Códigos de moeda, tipos de pessoa, instituidores de arranjo e códigos de ocorrência aparecem aqui.
* **Registro e credenciamento** – Um CNPJ, um ISPB ou um relacionamento de participante difere do que a Núclea mantém para o adquirente.
* **Números de controle duplicados** – Um número de controle ou um nome de arquivo repete um que a Núclea já registrou.
* **Datas e períodos de relatório** – Uma data de pagamento, uma data de referência ou um intervalo de relatório está fora do que o tipo de produto permite.
* **Estado do registro e códigos de ocorrência** – O código de ocorrência não é adequado ao estado atual do registro, como um registro liquidado ou um cancelado.
* **Períodos de devolução** – O registro está dentro de um período de devolução, e a Núclea nomeia o tipo de arquivo que carrega a correção.
* **Limites e volumes** – Um valor de pagamento, uma contagem de arquivos ou uma contagem de registros está acima do máximo aceito.

A Núclea envia um código dessas famílias em uma linha de um arquivo de retorno ou no veredito dela sobre um envio. O Lerian SLC o registra em `eslcErrors` na operação. Cite o código ao abrir o caso com a Núclea, porque é o identificador que o suporte da Núclea usa.


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