Pular para o conteúdo principal
Toda resposta de erro é um objeto JSON com uma chave error. As respostas bem-sucedidas nunca a incluem.
Os erros de autenticação adicionam uma chave message e mantêm error fixo em "Unauthorized":
Alguns erros de negócio em pedidos, devoluções e recebimentos (replenishment) adicionam um code estável que você pode usar para comparação e, às vezes, um objeto context com identificadores relacionados:
Quando um endpoint retorna códigos, sua página de referência os lista. Trate error como texto para pessoas e code como o valor para tomar decisões no seu código.

Códigos de status

Validação de parâmetros

Cada endpoint valida seus parâmetros antes de executar qualquer ação. Uma verificação com falha retorna 422 com uma mensagem que nomeia o parâmetro, por exemplo: Tipos incorretos e valores fora de uma lista permitida falham da mesma forma, com uma mensagem que nomeia o parâmetro. Compare pelo código de status e pelo nome do parâmetro, e não pela frase exata.

Erros de negócio

As regras de negócio retornam 422 com uma frase descritiva, por exemplo "no shipping_label with id 99 was found.". Cada endpoint na referência da API lista as mensagens que pode retornar. Algumas mensagens são retornadas no idioma do país do armazém (espanhol ou português) quando vêm do lado da operação; a referência as mostra literalmente.

Exceções a observar

Alguns endpoints ainda não seguem os padrões acima. Trate-os explicitamente:
  • Erros com status 200. POST /orders/cancel, POST /orders/delete, PATCH /orders/{id}/hold e PATCH /orders/{id}/unhold podem responder 200 com uma chave error, por exemplo quando o pedido está em um status que não permite a ação. Verifique se o corpo contém error mesmo com 200.
  • Click and collect. Esses endpoints respondem 404 com um code como ORDER_NOT_FOUND, e o corpo do 500 é {"error": "unexpected_error", "timestamp": 1760000000}.
  • Criação de pedidos. POST /orders, POST /orders/create-and-ship e POST /brazil/orders respondem 500 com {"error": "unexpected error"} e sem timestamp.
  • Identificadores desconhecidos. Alguns endpoints respondem 500 em vez de 422 para um store_id ou shipping_method_id que não existe. Verifique os identificadores antes de tentar novamente um 500.

Erros inesperados

O timestamp identifica a falha nos logs da Cubbo. Inclua-o quando escrever para integraciones@cubbo.com.