DesenvolvedorComeçar aqui
Erros
Entenda o envelope, os status HTTP e todos os códigos de erro da API pública da OctoSolve.
Erros
Todos os erros da API v1 usam o mesmo envelope. O code é estável e deve orientar sua automação. A message é feita para leitura humana e pode receber melhorias sem mudar o código.
A lista de códigos pode crescer com novos recursos. Um cliente bem-comportado conhece os códigos úteis para sua regra de negócio e, quando recebe um código desconhecido, decide pelo status HTTP. Não trate código desconhecido como sucesso.
details só aparece quando há informação estruturada adicional e, quando aparece, é sempre uma lista de objetos. Guarde o request_id ao abrir um chamado, mas nunca registre o header Authorization.
Códigos
| Status HTTP | Código | Quando acontece |
|---|---|---|
| 401 | unauthorized | Chave ausente, malformada, inexistente, revogada, suspensa ou vencida |
| 403 | forbidden_plan | O plano não inclui acesso à API |
| 403 | forbidden_scope | Uma chave read tentou executar POST ou PATCH |
| 403 | account_suspended | A conta está suspensa por pendência de pagamento |
| 404 | not_found | Rota ou recurso não encontrado, inclusive contato de outra conta |
| 405 ou 422 | validation_error | Método não aceito, parâmetro inválido ou corpo que não atende ao schema |
| 400 | invalid_cursor | Cursor inválido ou reutilizado com filtros diferentes |
| 429 | rate_limited | Limite por minuto, hora, dia ou proteção de tentativas por IP atingido |
| 409 | conflict | Conflito de negócio, como telefone de contato duplicado |
| 409 | slot_conflict | O horário escolhido para um agendamento foi ocupado |
| 409 | invalid_transition | A mudança de status do agendamento não é permitida pela API |
| 409 | calendar_not_connected | A conta não tem agenda do Google conectada. Conecte a agenda no painel antes de consultar horários livres. Repetir a mesma requisição não resolve. |
| 409 | idempotency_conflict | A mesma Idempotency-Key foi reutilizada com outro corpo, método ou rota |
| 409 | idempotency_in_progress | A requisição original com a chave de idempotência ainda está em andamento |
| 413 | payload_too_large | Corpo maior que 64 KB |
| 415 | unsupported_media_type | Corpo enviado sem application/json |
| 500 | internal_error | Erro interno inesperado, sem detalhes técnicos na resposta |
| 503 | service_unavailable | Serviço necessário indisponível |
Provocar um 401 com curl
A chave abaixo é fictícia:
Receita para Make ou n8n
- Configure o módulo ou nó HTTP para não interromper todo o fluxo ao receber status de erro.
- Separe o caminho de sucesso do caminho em que existe
error.code. - Em
rate_limited, espere conformeRetry-Afterantes de repetir. - Em
idempotency_in_progresseservice_unavailable, repita com espera crescente e número máximo de tentativas. - Em erros
400,401,403,404,405,413,415e422, corrija a entrada ou a configuração. Não repita o mesmo pedido sem alteração. - Em
slot_conflict, consulte a disponibilidade novamente e ofereça outro horário. - Em
invalid_transition, leiadetails[0].status_atuale siga a máquina de estados de agendamentos. - Em
calendar_not_connected, conecte a agenda no painel. Não repita a mesma requisição antes disso. - Em
conflicteidempotency_conflict, encaminhe para uma regra de negócio ou revisão humana. - Para qualquer código desconhecido, use o status HTTP para decidir entre corrigir a entrada, pedir revisão ou tentar novamente.
- Registre
error.code, status erequest_id. Não registre a chave da API nem o corpo se ele contiver dados pessoais desnecessários.