Skip to main content
Formato de erro O SPB retorna erros como problem details da RFC 9457. A referência da API declara o media type application/problem+json e o schema Detail para essas respostas.
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>. Uma resposta sem code carrega o padrão da RFC about:blank.
  • title – O texto do status HTTP, por exemplo Unprocessable Entity.
  • status – O código de status HTTP.
  • detail – Uma explicação legível dessa ocorrência. Para a maioria das respostas 5xx, o SPB substitui o texto por internal error, então a causa interna fica fora da resposta. Decida com base em code.
  • code – O código de erro estável do SPB, no formato SPB-NNNN. Uma requisição que o roteador recusa, ou que falha na validação de schema da requisição, não carrega code.
  • errors – Uma lista opcional de detalhes de validação por campo. Cada entrada carrega um message e uma location.
  • correlationId – O identificador de correlação da requisição, quando o SPB resolve um. Cite esse valor em uma solicitação de suporte.
O status HTTP depende da camada que recusa a requisição. Uma requisição que chega ao handler e então quebra uma regra de negócio responde com o status das tabelas abaixo. A camada de idempotência roda antes do handler. Uma requisição que ela recusa por uma chave ausente ou malformada responde 400 Bad Request. Uma repetição de uma chave ainda em andamento responde 409 Conflict. A coluna detail resume o texto que o SPB coloca no campo detail. A formulação exata depende do ponto de chamada, porque um ponto de chamada pode adicionar contexto específico da requisição a ele.

Erros de validação e entrada


A faixa SPB-0xxx cobre uma requisição que o SPB leu e então recusou.

HTTP 422 Unprocessable Entity

HTTP 413 Request Entity Too Large

HTTP 404 Not Found

HTTP 409 Conflict

Erros de autenticação e autorização


A faixa SPB-2xxx cobre uma requisição cuja credencial está ausente ou inutilizável, e uma requisição que pede uma ação fora de suas permissões.

HTTP 401 Unauthorized

HTTP 403 Forbidden

Erros de processamento e estado


A faixa SPB-3xxx cobre uma requisição que o SPB aceitou e depois não conseguiu aplicar. Três desses códigos descrevem um conflito de estado sobre o qual você pode agir, então respondem 409 em vez de um 5xx.

HTTP 409 Conflict

HTTP 500 Internal Server Error

Erros de limitação de taxa


A faixa SPB-4xxx cobre um solicitante que excedeu seu orçamento de requisições.

HTTP 429 Too Many Requests

Erros de fallback


A faixa SPB-9xxx cobre uma falha do lado da Lerian ou em um componente do qual o SPB depende. Tente novamente uma requisição que responde 503 ou 504. Para os demais códigos, cite o correlationId em uma solicitação de suporte.

HTTP 500 Internal Server Error

HTTP 503 Service Unavailable

HTTP 504 Gateway Timeout

Rejeições da rede do BACEN


Um código SPB-NNNN descreve uma decisão que o Lerian SPB tomou. Uma mensagem que o SPB transmite ainda pode falhar no STR, e essa rejeição carrega o vocabulário próprio do BACEN em vez de um código SPB-NNNN. GET /v1/str/reports/rejected lista as mensagens rejeitadas de um intervalo de datas. Cada item rejeitado carrega um campo rejectReason quando o BACEN fornece um. O valor é o próprio código de erro do BACEN para a rejeição, projetado sem alteração. O SPB o lê do campo de código de erro no retorno de erro do STR que o BACEN devolve. Trate rejectReason como um vocabulário aberto. O conjunto de valores pertence ao BACEN, e cresce com o catálogo do STR. Repasse o valor ao seu operador em vez de compará-lo com uma lista fixa no seu cliente. O resultado da liquidação viaja separadamente, no campo sitLancSTR de uma operação. O SPB projeta o status de liquidação do STR literalmente nesse campo. O campo permanece vazio até o STR liquidar a operação.