Protocolo

Erros

Todo erro vem em application/problem+json (RFC 9457), com um code que não muda de sentido: escreva o seu tratamento em cima dele, não do texto.

{
  "type": "https://torqyn.com/docs/erros#forbidden_scope",
  "title": "A chave não tem o escopo desta rota",
  "status": 403,
  "code": "forbidden_scope",
  "detail": "Esta rota pede o escopo events:write.",
  "request_id": "req_…"
}

O request_id é o mesmo do cabeçalho Torqyn-Request-Id. Mande-o quando pedir ajuda.

Cada code

CodeStatusO que fazer
invalid_request
Requisição inválida
400O corpo, a query ou um parâmetro não passou na validação. O detail diz o campo; corrija e mande de novo. Query que a rota não declara também cai aqui.
invalid_version
Versão da API desconhecida
400O Torqyn-Version não é uma versão que existe. Tire o cabeçalho ou use uma da lista.
idempotency_key_required
Falta a Idempotency-Key
400Toda rota que muda alguma coisa exige Idempotency-Key. Gere um valor único por operação (um UUID serve).
unauthorized
Chave de API ausente ou inválida
401Chave ausente, errada, revogada, vencida, de um IP que ela não permite ou de uma conta sem a API ligada. A resposta é a mesma de propósito.
forbidden_scope
A chave não tem o escopo desta rota
403A chave vale, mas não tem o escopo desta rota. Crie outra chave com o escopo.
not_found
Não encontrado
404O recurso não existe nesta conta. Recurso de outra conta responde igual.
conflict
Conflito com o estado atual
409O pedido não combina com o estado atual (ex.: o recurso mudou no meio). Leia de novo e decida.
rejected
Recusado pela regra de negócio
409Uma regra de negócio recusou o pedido. O detail diz qual.
opted_out
A pessoa pediu para não receber mensagem
409A pessoa pediu para não receber mensagens. Nada foi enviado, e nenhuma nova tentativa vai mudar isso.
idempotency_key_in_use
Outra requisição com esta Idempotency-Key ainda está rodando
409Outra requisição com a mesma chave ainda está rodando. Espere e repita com a mesma chave.
payload_too_large
Corpo maior que o permitido
413O corpo passou do limite. Mande menos de uma vez.
unsupported_media_type
Envie o corpo como application/json
415Mande o corpo como application/json.
idempotency_key_reused
Idempotency-Key já usada com outro corpo ou em outra rota
422A chave já foi usada com outro corpo ou noutra rota. Cada operação diferente leva uma chave nova.
rate_limited
Limite de requisições atingido
429Passou do limite de requisições. Espere o Retry-After (em segundos) e repita.
internal_error
Erro interno
500Falha do nosso lado. Repita com a mesma Idempotency-Key; se continuar, mande o request_id para contato@torqyn.com.