application/problem+json e o schema Detail para essas respostas.
type– Um URI que identifica o erro no catálogo de erros da Lerian, construído comohttps://errors.lerian.studio/v1/<code>. Uma resposta semcodecarrega o padrão da RFCabout:blank.title– O texto do status HTTP, por exemploUnprocessable Entity.status– O código de status HTTP.detail– Uma explicação legível dessa ocorrência. Para a maioria das respostas5xx, o SPB substitui o texto porinternal error, então a causa interna fica fora da resposta. Decida com base emcode.code– O código de erro estável do SPB, no formatoSPB-NNNN.errors– Uma lista opcional de detalhes de validação por campo. Cada entrada carrega ummessagee umalocation, e pode carregar ovaluerejeitado.correlationId– O identificador de correlação da requisição. O SPB reutiliza umX-Request-IDválido ou gera um. Cite esse valor em uma solicitação de suporte.
400), um método não suportado (405) ou um media type não suportado (415). Uma rota desconhecida responde 404 com SPB-0010, e uma requisição que não corresponde ao schema publicado responde 422 com SPB-0003.
A camada de idempotência roda antes do handler. Um header X-Idempotency ausente responde 422 com SPB-0001. Uma chave malformada, ou uma chave reutilizada com um corpo diferente, responde 422 com SPB-0003. Uma repetição de uma chave ainda em andamento responde 409 com SPB-0011. Se o armazenamento de idempotência falha depois que o handler rodou, o SPB ainda retorna a resposta do handler, com o header X-Idempotency-Fenced. Quando esse header vale true, a chave recusa um reenvio com 422. Concilie a requisição original e não a envie de novo com uma nova chave.
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 substituí-lo por um texto específico da requisição.
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 conectividade com o STR
A faixa
SPB-1xxx cobre uma requisição que o SPB recusou porque o seu caminho até o STR está fora do ar.
HTTP 503 Service Unavailable
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. Ela também cobre uma requisição enviada por HTTP em texto puro em produção ou staging.
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. O SPB projeta o status de liquidação do STR literalmente nesse campo. Ele faz isso nos eventos de uma resposta de entrada e nas leituras de status da Conta PI e de moeda eletrônica. Nessas leituras, o campo permanece vazio enquanto a movimentação está PENDING.
