2xx indicam sucesso, códigos na faixa 4xx indicam erros causados por informações fornecidas (ex: parâmetro obrigatório faltando, autenticação falhou, etc.), e códigos na faixa 5xx indicam erros nos servidores da Upay.
Estrutura de erro
Todas as respostas de erro seguem o mesmo formato:Campos da resposta
- code: Código único identificando o tipo de erro
- message: Mensagem descritiva do erro em português
- details: Array com detalhes adicionais (opcional, presente em erros de validação)
Códigos de status HTTP
2xx - Sucesso
A requisição foi bem-sucedida. O corpo da resposta contém os dados solicitados.
O recurso foi criado com sucesso. O corpo da resposta contém o recurso criado.
A requisição foi bem-sucedida, mas não há conteúdo para retornar (comum em operações DELETE).
4xx - Erros do cliente
A requisição não pôde ser processada devido a sintaxe inválida ou parâmetros incorretos.Códigos comuns:
VALIDATION_ERROR: Dados de entrada inválidosINVALID_REQUEST: Formato da requisição inválidoMISSING_PARAMETER: Parâmetro obrigatório ausente
A autenticação falhou ou não foi fornecida. Verifique sua API Key.Códigos comuns:
AUTHENTICATION_FAILED: API Key inválida ou ausenteINVALID_API_KEY: API Key não encontrada ou revogadaAPI_KEY_EXPIRED: API Key expirada
Você não tem permissão para acessar este recurso.Códigos comuns:
INSUFFICIENT_PERMISSIONS: Permissões insuficientesRESOURCE_ACCESS_DENIED: Acesso negado ao recurso
O recurso solicitado não foi encontrado.Códigos comuns:
RESOURCE_NOT_FOUND: Recurso não existePAYMENT_LINK_NOT_FOUND: Link de pagamento não encontradoTRANSACTION_NOT_FOUND: Transação não encontradaPRODUCT_NOT_FOUND: Produto não encontrado
A requisição conflita com o estado atual do recurso.Códigos comuns:
DUPLICATE_RESOURCE: Recurso duplicadoSLUG_ALREADY_EXISTS: Slug já está em usoCONFLICT: Conflito de estado
A requisição está bem formada, mas não pode ser processada devido a erros semânticos.Códigos comuns:
BUSINESS_RULE_VIOLATION: Violação de regra de negócioINVALID_STATE_TRANSITION: Transição de estado inválidaINSUFFICIENT_BALANCE: Saldo insuficiente
Você excedeu o limite de requisições. Aguarde antes de tentar novamente.Códigos comuns:
RATE_LIMIT_EXCEEDED: Limite de taxa excedido
X-RateLimit-Limit: Limite total de requisiçõesX-RateLimit-Remaining: Requisições restantesX-RateLimit-Reset: Timestamp quando o limite será resetado
5xx - Erros do servidor
Ocorreu um erro interno no servidor. Entre em contato com o suporte se o problema persistir.Códigos comuns:
INTERNAL_ERROR: Erro interno do servidorUNEXPECTED_ERROR: Erro inesperado
O servidor recebeu uma resposta inválida de um servidor upstream.Códigos comuns:
GATEWAY_ERROR: Erro no gatewayPAYMENT_PROVIDER_ERROR: Erro no provedor de pagamento
O serviço está temporariamente indisponível. Tente novamente mais tarde.Códigos comuns:
SERVICE_UNAVAILABLE: Serviço indisponívelMAINTENANCE_MODE: Sistema em manutenção
O servidor não recebeu resposta a tempo de um servidor upstream.Códigos comuns:
GATEWAY_TIMEOUT: Timeout no gatewayREQUEST_TIMEOUT: Timeout na requisição
Códigos de erro específicos
Erros de validação
| Código | Descrição | Solução |
|---|---|---|
VALIDATION_ERROR | Dados de entrada inválidos | Verifique os campos no array details |
INVALID_EMAIL | Formato de email inválido | Forneça um email válido |
INVALID_PHONE | Formato de telefone inválido | Use o formato: +5511999999999 |
INVALID_CPF | CPF inválido | Forneça um CPF válido (apenas números) |
INVALID_CNPJ | CNPJ inválido | Forneça um CNPJ válido (apenas números) |
INVALID_AMOUNT | Valor inválido | O valor deve ser maior que zero |
INVALID_DATE | Data inválida | Use formato ISO 8601 |
INVALID_ENUM_VALUE | Valor de enum inválido | Use um dos valores permitidos |
Erros de autenticação
| Código | Descrição | Solução |
|---|---|---|
AUTHENTICATION_FAILED | Falha na autenticação | Verifique sua API Key |
INVALID_API_KEY | API Key inválida | Gere uma nova API Key no dashboard |
API_KEY_EXPIRED | API Key expirada | Gere uma nova API Key |
MISSING_API_KEY | API Key não fornecida | Inclua o header Authorization: Bearer YOUR_API_KEY |
Erros de recursos
| Código | Descrição | Solução |
|---|---|---|
RESOURCE_NOT_FOUND | Recurso não encontrado | Verifique o ID do recurso |
PAYMENT_LINK_NOT_FOUND | Link de pagamento não encontrado | Verifique o slug ou ID do link |
TRANSACTION_NOT_FOUND | Transação não encontrada | Verifique o ID da transação |
PRODUCT_NOT_FOUND | Produto não encontrado | Verifique o ID do produto |
CUSTOMER_NOT_FOUND | Cliente não encontrado | Verifique o ID do cliente |
COUPON_NOT_FOUND | Cupom não encontrado | Verifique o código do cupom |
Erros de negócio
| Código | Descrição | Solução |
|---|---|---|
SLUG_ALREADY_EXISTS | Slug já está em uso | Use um slug diferente |
COUPON_EXPIRED | Cupom expirado | Use um cupom válido |
COUPON_LIMIT_REACHED | Limite de uso do cupom atingido | Use outro cupom |
INSUFFICIENT_STOCK | Estoque insuficiente | Reduza a quantidade ou aguarde reposição |
PAYMENT_LINK_EXPIRED | Link de pagamento expirado | Crie um novo link |
PAYMENT_LINK_INACTIVE | Link de pagamento inativo | Ative o link ou crie um novo |
INVALID_PAYMENT_METHOD | Método de pagamento inválido | Use: PIX, CREDIT_CARD, DEBIT_CARD ou BOLETO |
INSUFFICIENT_BALANCE | Saldo insuficiente | Aguarde processamento de transações |
Erros de webhook
| Código | Descrição | Solução |
|---|---|---|
INVALID_WEBHOOK_SIGNATURE | Assinatura do webhook inválida | Verifique o secret do webhook |
WEBHOOK_DELIVERY_FAILED | Falha ao entregar webhook | Verifique se sua URL está acessível |
WEBHOOK_TIMEOUT | Timeout ao entregar webhook | Sua URL deve responder em até 5 segundos |
Exemplos de tratamento
JavaScript/TypeScript
Python
PHP
cURL
Boas práticas
1. Sempre trate erros
Nunca assuma que uma requisição será bem-sucedida. Sempre implemente tratamento de erros adequado.2. Use retry com backoff exponencial
Para erros5xx e 429, implemente retry com backoff exponencial:
3. Monitore rate limits
Verifique os headers de rate limit e ajuste sua taxa de requisições:4. Log erros para análise
Mantenha logs detalhados de erros para facilitar debugging:5. Valide dados antes de enviar
Valide dados no cliente antes de fazer requisições para reduzir erros:Suporte
Se você encontrar um erro não documentado ou precisar de ajuda:- Consulte a página de troubleshooting
- Entre em contato: [email protected]
- Abra uma issue no GitHub

