Skip to main content
A API Repass usa códigos de status HTTP convencionais e um envelope de erro único em qualquer endpoint de qualquer módulo (programas, afiliados, conversões, comissões, payouts, etc.). Falhas de negócio são erros de domínio tipados, lançados pelos casos de uso e mapeados para HTTP num único ponto, então você integra contra um contrato estável, sem precisar conhecer a estrutura interna da plataforma.

Envelope de erro

Toda resposta de erro tem o mesmo formato: um objeto raiz error com type, code e message. Os campos param e issues são opcionais e só aparecem quando aplicáveis.
object
Campos ausentes simplesmente não aparecem no JSON. Trate param e issues como opcionais.

Status HTTP por categoria

Cada type corresponde a uma faixa de status HTTP. Use o status para a decisão de alto nível (sucesso vs. erro do cliente vs. erro do servidor) e o code para o tratamento específico.
O status HTTP 200 a 299 indica sucesso. 400 a 499 indica um problema com o request (não repita sem corrigir, exceto 409 idempotency_in_flight). 500 indica falha do servidor (seguro repetir com backoff).

Catálogo de códigos

Mapeamento completo de cada situação para status, type e code. Este mapeamento é aplicado globalmente em todos os endpoints.
Erros 4xx originados por validações de transporte (ex.: 413 por arquivo grande demais num upload multipart) também seguem o envelope padrão, com o status original e type: invalid_request_error.

Erros de validação (Zod)

Quando o corpo, a query ou os parâmetros de path falham na validação de schema, a API retorna 400 com code: parameter_invalid. A resposta inclui:
  • param: o caminho do primeiro campo inválido, derivado do instancePath com barras convertidas em pontos (ex.: /tiers/0/minCount vira tiers.0.minCount).
  • issues: o array completo de problemas de validação, um item por campo, para que você localize todos os erros de uma vez.
Exemplo: criando uma regra de comissão percentage com o percentage fora do intervalo permitido (0 a 100).
Valores monetários são inteiros em centavos (ex.: fixedAmountCents: 1990 = R$ 19,90), nunca floats. Percentuais de entrada usam a forma decimal 0 a 100 (ex.: percentage: 15 = 15%); a plataforma armazena e devolve percentuais em basis points (10000 bps = 100%). Enviar um decimal onde se espera centavos resulta em parameter_invalid. Veja IDs e recursos.

Exemplos por categoria

Um ID válido que não corresponde a nenhum recurso da sua organização (ou de outra organização, já que o multi-tenancy é estrito) retorna 404.
Request sem token, com token inválido/expirado ou sem o header Authorization.
Veja Autenticação para obter e usar uma API key (rstr_...).
Você está autenticado, mas seu papel na organização não permite a operação (ex.: criar um job de reprocessamento exige papel owner ou admin).
A operação conflita com o estado atual do recurso (ex.: aprovar uma conversão que já foi paga, ou criar um recurso com um identificador único já em uso).
Reusar uma Idempotency-Key com um corpo diferente do request original retorna 400 idempotency_key_reused. Repetir um request enquanto o original ainda está em processamento retorna 409 idempotency_in_flight.
Veja Idempotência para o ciclo completo (escopo org:user, TTL de 24h, replay).
Um erro inesperado do lado do servidor. O request pode estar correto; é seguro repetir com backoff exponencial. Se persistir, contate o suporte com o horário e o endpoint.

Como tratar erros

Trate erros com base no status HTTP primeiro e no code em seguida. O type serve para classificação genérica; o code para decisões específicas.
1

Cheque o status HTTP

2xx é sucesso. 4xx é um problema com o request: não repita sem mudar algo (exceto 409 idempotency_in_flight). 5xx é o servidor: repita com backoff exponencial.
2

Use error.code para a lógica

Faça branch no code (estável), nunca na message (sujeita a mudança). Para validação, use param e issues para apontar o(s) campo(s) ao usuário ou ao log.
3

Não repita erros determinísticos

Um 400/404/403 se repetirá com o mesmo resultado. Em fluxos com Idempotency-Key, um 4xx determinístico é gravado e retornado como replay nas próximas tentativas com a mesma chave.

Próximos passos

Autenticação

Como autenticar com API keys rstr_... e evitar 401.

Idempotência

Escopo, TTL e replay dos erros idempotency_error.

IDs e recursos

Formato dos IDs, centavos e basis points para evitar parameter_invalid.

Paginação

Limites e cursores das listagens, e seus erros de validação.