ITP - Códigos de Resposta HTTP

Visão Geral

Esta página descreve os códigos HTTP retornados pela API de Pix ITP e suas interpretações, incluindo orientações de tratamento para cada cenário.


Códigos de Sucesso

CódigoStatusOcorre emDescrição
200 OKSucessoGET e alguns POSTRequisição processada com sucesso. Body contém o recurso solicitado
201 CreatedCriadoPOST /payment-initiation, POST /callback, POST /pixRecurso criado com sucesso

Códigos de Erro do Cliente (4xx)

CódigoStatusCausas ComunsComo Tratar
400 Bad RequestRequisição inválidaBody malformado, campo obrigatório ausente, formato de campo incorretoRevise o payload. Verifique campos obrigatórios, tipos e formatos
401 UnauthorizedNão autorizadoaccess_token ausente, expirado ou inválidoObtenha um novo token via POST /v5/token
403 ForbiddenProibidoAplicação sem permissão para o recurso solicitadoVerifique as permissões do client_id com a Celcoin
404 Not FoundNão encontradopaymentInitiationId ou applicationId inexistenteVerifique se o ID está correto e pertence à mesma aplicação
409 ConflictConflitoTentativa de executar /pix em consentimento já utilizadoCrie um novo consentimento
422 Unprocessable EntityEntidade não processávelRegra de negócio violada. Body contém array errors[] com código e detalheLeia o campo errors[].code e errors[].detail para identificar o problema
429 Too Many RequestsLimite de taxa excedidoMuitas requisições em janela de tempoImplemente backoff exponencial. Aguarde antes de tentar novamente

Códigos de Erro do Servidor (5xx)

CódigoStatusDescriçãoComo Tratar
500 Internal Server ErrorErro internoFalha inesperada no servidorTente novamente após alguns segundos. Se persistir, acione o suporte
502 Bad GatewayGateway inválidoErro de comunicação com serviço interno ou detentoraTente novamente. Pode ser falha temporária
503 Service UnavailableServiço indisponívelManutenção programada ou instabilidadeAguarde e tente novamente. Consulte status page
504 Gateway TimeoutTimeout de gatewayA detentora não respondeu no prazoConsulte status via GET /payment-initiation/:id antes de tentar novamente

Estrutura de Erro 422

Erros 422 retornam um array de erros com código, título e detalhe:

{
  "errors": [
    {
      "code": "DATA_PAGAMENTO_INVALIDA",
      "title": "Data de pagamento inválida.",
      "detail": "Data de pagamento inválida para a forma de pagamento selecionada."
    }
  ]
}
CampoDescrição
errors[].codeCódigo de erro legível por máquina — use para lógica de tratamento
errors[].titleTítulo curto do erro em português
errors[].detailDescrição detalhada do problema

Tabela de Códigos de Erro de Negócio (422)

codeDescriçãoCausa
DATA_PAGAMENTO_INVALIDAData de pagamento inválidaData passada ou formato incorreto
CONSENTIMENTO_INVALIDOConsentimento inválidoStatus incompatível com a operação
PAGAMENTO_JA_EXECUTADOPagamento já foi executadoTentativa de chamar /pix em consentimento CONSUMED
BRAND_NAO_ENCONTRADAMarca não encontradabrandId inexistente ou inativo
CPF_CNPJ_INVALIDOCPF/CNPJ inválidoDocumento do creditor com formato incorreto
VALOR_INVALIDOValor inválidoFormato do amount incorreto
PROXY_INVALIDOChave Pix inválidaproxy com formato incorreto para o localInstrument informado

Boas Práticas de Tratamento de Erros

Para 401: Implemente renovação automática do token antes de retentar. Nunca exiba erros de autenticação ao usuário final.

Para 422: Leia sempre errors[].code. Exiba mensagens amigáveis baseadas no código — não mostre o detail técnico diretamente ao usuário.

Para 429: Use backoff exponencial: aguarde 1s, depois 2s, depois 4s. Limite a 3 tentativas.

Para 5xx: Não retente imediatamente — pode agravar o problema. Aguarde pelo menos 5 segundos antes de uma nova tentativa.

Para 504: Antes de retentar a operação, consulte o status do pagamento via GET /payment-initiation/:id para verificar se a operação foi processada, evitando duplicidade.