O que é
A API Upscale é o ponto de integração entre a plataforma de e-commerce e sistemas externos que precisam sincronizar catálogo, estoque, preço e pedidos. O caso de uso típico é um ERP que:- Empurra catálogo, estoque e preço pra loja online
- Puxa pedidos aprovados pra emitir nota fiscal, baixar estoque e postar
- Devolve status pra loja (código de rastreio, confirmação de NF)
Divisão de responsabilidades
A API foi desenhada com uma linha clara entre o que é do ERP e o que é da loja:A loja nunca aceita campos como
ativo, ativa, ordem, estoque_reservado vindos da API — são gerenciados exclusivamente pela loja. Enviar esses campos resulta em HTTP 400 VALIDATION.Ambiente
Todos os endpoints ficam sob o prefixo/api/hunter/v1/ na URL base da loja.
A URL exata varia por cliente. Sua chave de acesso é vinculada a uma loja específica. Peça a URL pra equipe de integração da Upscale ou pra loja parceira.
Estrutura de resposta
Todo response é JSON, com formato padronizado.Sucesso
Erro
Idempotência
Todos os endpoints de escrita são idempotentes por chave natural:POST /produtos— chave:hunter_idPOST /variantes— chave:hunter_idPOST /estoque— chave:hunter_variante_idPOST /precos— chave:hunter_variante_idPOST /pedidos/{codigo}/processado— chave:codigo(idempotência estrita — segunda chamada retorna409 CONFLICT)POST /pedidos/{codigo}/rastreio— chave:codigo(idempotência aberta — segunda chamada sobrescreve, útil pra corrigir código de rastreio errado)
Batches
Endpoints de escrita aceitam até 500 itens por request. Excedeu, respostaHTTP 400.
Cada item do lote é processado individualmente — se 3 de 500 falham por SKU inexistente, os outros 497 seguem. O response traz resultados[] com o status de cada item:
HTTP 200— tudo processado com sucessoHTTP 207 Multi-Status— parcial (alguns itens falharam individualmente)HTTP 400— payload inválido OU todos os itens falharam
Próximos passos
Autenticação
Como obter uma chave de API e autenticar requests
Rate Limits
Limites de chamadas por minuto e como tratar
429Sincronização de catálogo
Guia passo a passo da carga inicial
Pull de pedidos
Como consumir pedidos com cursor incremental