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
| Code | Status | O que fazer |
|---|---|---|
invalid_requestRequisição inválida | 400 | O 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_versionVersão da API desconhecida | 400 | O Torqyn-Version não é uma versão que existe. Tire o cabeçalho ou use uma da lista. |
idempotency_key_requiredFalta a Idempotency-Key | 400 | Toda rota que muda alguma coisa exige Idempotency-Key. Gere um valor único por operação (um UUID serve). |
unauthorizedChave de API ausente ou inválida | 401 | Chave 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_scopeA chave não tem o escopo desta rota | 403 | A chave vale, mas não tem o escopo desta rota. Crie outra chave com o escopo. |
not_foundNão encontrado | 404 | O recurso não existe nesta conta. Recurso de outra conta responde igual. |
conflictConflito com o estado atual | 409 | O pedido não combina com o estado atual (ex.: o recurso mudou no meio). Leia de novo e decida. |
rejectedRecusado pela regra de negócio | 409 | Uma regra de negócio recusou o pedido. O detail diz qual. |
opted_outA pessoa pediu para não receber mensagem | 409 | A pessoa pediu para não receber mensagens. Nada foi enviado, e nenhuma nova tentativa vai mudar isso. |
idempotency_key_in_useOutra requisição com esta Idempotency-Key ainda está rodando | 409 | Outra requisição com a mesma chave ainda está rodando. Espere e repita com a mesma chave. |
payload_too_largeCorpo maior que o permitido | 413 | O corpo passou do limite. Mande menos de uma vez. |
unsupported_media_typeEnvie o corpo como application/json | 415 | Mande o corpo como application/json. |
idempotency_key_reusedIdempotency-Key já usada com outro corpo ou em outra rota | 422 | A chave já foi usada com outro corpo ou noutra rota. Cada operação diferente leva uma chave nova. |
rate_limitedLimite de requisições atingido | 429 | Passou do limite de requisições. Espere o Retry-After (em segundos) e repita. |
internal_errorErro interno | 500 | Falha do nosso lado. Repita com a mesma Idempotency-Key; se continuar, mande o request_id para contato@torqyn.com. |