Skip to Content
ConceitosTratamento de erros

Tratamento de erros

Todas as respostas de erro seguem o mesmo envelope, com um code estável que você pode tratar programaticamente — mensagens podem mudar, códigos não.

{ "error": { "code": "ERRO_VALIDACAO", "message": "CPF inválido", "details": { "campo": "cpf", "restricoes": { "matches": "cpf deve conter exatamente 11 dígitos." } } } }

O campo details é opcional e varia por tipo de erro (ex.: campos de validação, ou dados do upstream com segredos já redigidos).

Catálogo de códigos

HTTPcodeQuando acontece
400ERRO_VALIDACAOPayload inválido (campo faltando, formato errado)
400IDEMPOTENCY_KEY_OBRIGATORIAFaltou o header Idempotency-Key
401CREDENCIAL_INVALIDASeu token está ausente, inválido ou expirado
401AUTORIZACAO_PENDENTEO trabalhador ainda não autorizou
401AUTORIZACAO_EXPIRADAA autorização do trabalhador venceu
403ESCOPO_INSUFICIENTEA credencial não tem o escopo necessário
404EMPRESTIMO_NAO_ENCONTRADOEmpréstimo inexistente ou de outro parceiro
404SEM_EMPREGADOR_AUTORIZADONenhum vínculo autorizado para o CPF
409CONFLITO_IDEMPOTENCIAA mesma Idempotency-Key está em processamento (details.motivo: "em_processamento") ou a tentativa anterior falhou com 5xx e precisa de reconciliação (details.motivo: "tentativa_anterior_falhou"). Uma chave já concluída com sucesso não dá erro: devolve a resposta original (veja Idempotência)
409CORPO_IDEMPOTENCIA_DIVERGENTEA mesma Idempotency-Key foi reusada com um corpo diferente — gere uma chave nova
422CONSULTA_MARGEM_NAO_ENCONTRADAFalta uma consulta de margem válida
422MARGEM_INSUFICIENTEA parcela excede a margem disponível
422ERRO_NEGOCIORegra de negócio impediu a operação
429RATE_LIMIT_EXCEDIDOLimite por credencial excedido (veja Retry-After)
502 / 503 / 504DATAPREV_INDISPONIVELUma integração externa (Dataprev, BaaS) está indisponível — tente de novo
502PARCEIRO_NAO_HABILITADOO parceiro não está habilitado na Socinal para esta operação. Não é transitório: repetir não resolve, contate o suporte
502UPSTREAM_INALCANCAVELNão conseguimos alcançar o sistema de liquidação — a requisição não chegou a ser processada e nada foi aplicado. Repetir com a mesma Idempotency-Key é seguro
503OPERACAO_NAO_PROVISIONADAO parceiro está habilitado, mas falta um cadastro específico desta operação do lado da Socinal (ex.: conta corrente da linha de crédito no desembolso). Sua requisição está correta — acione o suporte e repita depois com a mesma Idempotency-Key (veja Desembolso)
500ERRO_INTERNOErro interno (sem detalhes em produção)

CREDENCIAL_INVALIDA é sempre sobre a credencial que você enviou. Quando a falha de autenticação é nossa, com os sistemas internos da Socinal, o erro vem como DATAPREV_INDISPONIVEL (transitório) ou PARCEIRO_NAO_HABILITADO (habilitação) — nunca como CREDENCIAL_INVALIDA. Se você recebeu CREDENCIAL_INVALIDA, o problema está no seu access_token.

Como tratar

  • Trate pelo code, não pela message. As mensagens são para humanos e podem mudar.
  • 429 e 5xx (incl. DATAPREV_INDISPONIVEL) são transitórios: faça retry com backoff, respeitando o Retry-After quando presente.
  • 4xx de validação/negócio (ERRO_VALIDACAO, MARGEM_INSUFICIENTE…) não adianta repetir sem corrigir a entrada.
  • PARCEIRO_NAO_HABILITADO e OPERACAO_NAO_PROVISIONADA são as exceções entre os 5xx: não são transitórios e não se resolvem corrigindo o payload — é configuração do nosso lado. A diferença: o primeiro é sobre o parceiro como um todo (abra um chamado); o segundo é sobre um cadastro específico desta operação, então depois da confirmação do suporte a mesma requisição funciona — repita com a mesma Idempotency-Key, informando o número do empréstimo no chamado.
  • UPSTREAM_INALCANCAVEL é o oposto: a requisição não chegou ao destino, nada foi aplicado, e repetir com a mesma Idempotency-Key é seguro de imediato.

Em chamadas idempotentes, repetir após um 5xx ou timeout com a mesma Idempotency-Key é sempre seguro — nunca duplica a operação. Você recebe a resposta original (X-Idempotency-Replayed: true) se ela já tiver sido processada, ou 409 CONFLITO_IDEMPOTENCIA — em voo (aguarde e repita) ou tentativa anterior falhada, que exige reconciliação antes de reenviar. Veja Idempotência.

403, 409 e 429 podem ocorrer em qualquer operação autenticada, mesmo quando o exemplo do endpoint na referência não os ilustra. Um cliente robusto trata os três.