Erros
Trate o contrato de respostas de problemas e correlacione solicitações.
Os erros seguem o contrato JSON de problemas da RFC 9457, com o tipo de mídia application/problem+json.
{
"type": "https://www.ninjabuy.com/api/v1/problems/bad-body",
"title": "Invalid request",
"status": 400,
"detail": "The request did not match the expected shape.",
"request_id": "REQUEST_ID",
"errors": [{"pointer": "/links", "detail": "Validation detail"}]
}type é o identificador estável do problema; title e detail o descrevem. status corresponde ao status HTTP. Entradas opcionais de errors contêm um JSON Pointer e detalhes de validação; um ponteiro vazio indica o corpo inteiro. Informe request_id (também em X-Request-Id) ao relatar um problema.
Todos os tipos abaixo começam com https://www.ninjabuy.com/api/v1/problems/.
| Sufixo do tipo | HTTP | Significado / ação |
|---|---|---|
bad-json | 400 | O corpo não é JSON válido. Corrija sua sintaxe. |
bad-body | 400 | O corpo, os parâmetros de consulta ou o cursor não passaram na validação. Leia errors. |
bad-idempotency-key | 400 | Use de 1 a 255 caracteres ASCII imprimíveis para Idempotency-Key. |
unauthorized | 401 | Forneça um token bearer válido; WWW-Authenticate fornece os metadados de descoberta. |
not-found | 404 | O recurso está indisponível, é desconhecido ou não pertence a esta conta. |
method-not-allowed | 405 | Use o método em Allow. |
idempotency-key-in-progress | 409 | A primeira solicitação com esta chave está em execução. Espere o prazo de Retry-After. |
upload-too-large | 413 | Os bytes enviados excedem o tamanho declarado ou o limite de 20 MiB. |
unsupported-media-type | 415 | Envie Content-Type: application/json. |
idempotency-key-reused | 422 | Esta chave foi usada com outra solicitação. Use uma nova chave. |
invalid-workbook | 422 | O upload não é um XLSX/CSV legível dentro dos limites. Leia errors. |
upload-expired | 422 | A reserva de envio expirou. Envie o arquivo novamente. |
rate-limited | 429 | Espere os segundos de Retry-After antes de tentar novamente. |
search-rate-limited | 429 | A janela de busca por palavras-chave está cheia. Espere o prazo de Retry-After. |
service-unavailable | 503 | Tente novamente em breve; respeite Retry-After quando estiver presente. |
internal-error | 500 | Tente novamente mais tarde; guarde o identificador da solicitação se persistir. |
Uma solicitação bem-sucedida ainda pode conter falhas por entrada. Trate os status dos links separadamente dos erros HTTP. Use Idempotency-Key para reproduzir uma solicitação de criação; sem uma chave, repetir o envio de um lote cria outra tarefa.