Recursos da API

Todos os endpoints vivem sob /api/v1 e exigem um Bearer token. Veja a referência interativa para schemas e exemplos completos.

Referência interativa (Scalar) com todos os schemas: /developers/reference

O que não é possível via API

  • Criar pedidos não é possível via API. Pedidos são gerados exclusivamente pelos compradores no storefront da Sellit. A API permite apenas leitura e atualização de status de envio e reembolso.
  • Reembolso parcial não está disponível. O endpoint POST /orders/{id}/refund executa sempre um reembolso total. O status partial_refunded pode aparecer em pedidos reembolsados pelo gateway diretamente, mas não é acionável via API.

Exemplo: criar um produto

name e price são obrigatórios. O tipo (typeId) assume Físico e a categoria (categoryId) assume Outros por padrão — você não precisa enviar esses campos internos da Sellit.

POST /api/v1/products
curl -X POST https://app.sellitbr.com/api/v1/products \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Camiseta Premium",
    "description": "100% algodão",
    "price": 99.90,
    "quantity": 50,
    "weight": 0.3,
    "width": 30, "height": 2, "length": 40
  }'

price em reais. weight em kg e width/height/length em cm (usados no cálculo de frete). Defaults: typeId = 2 (Físico), categoryId = 23 (Outros). Tipos: 1=Digital, 2=Físico, 3=Digital/Físico.

priceDiscount é o preço promocional (de venda ao comprador). Quando definido e menor que price, o storefront exibe price riscado e priceDiscount como preço real. Exemplo: price: 99.90 + priceDiscount: 69.90 → o comprador vê "~~R$99,90~~ R$69,90". Para remover a promoção, envie priceDiscount: null.

Produtos com variação (modelo parent/child por SKU)

Na Sellit, um produto tem variações (ex.: Tamanho × Cor), e cada variação (combinação, ex.: P - AZUL) tem SKU, preço e estoque próprios. Se a sua plataforma trata cada variação como um produto-filho (modelo de ERP/marketplace), o mapeamento é feito pelo sku: o lojista (ou você) define o SKU de cada variação, e você sincroniza por ele.

GET /api/v1/products/{id}/variants
# 1) Liste as variações e veja o SKU/preço/estoque de cada uma
curl https://app.sellitbr.com/api/v1/products/PROD_ID/variants \
  -H "Authorization: Bearer SEU_TOKEN"

# resposta
{ "data": [
  { "id": "vc_1", "combination": "P - AZUL", "sku": "CAM-P-AZ", "price": 99.9, "quantity": 12 },
  { "id": "vc_2", "combination": "M - AZUL", "sku": "CAM-M-AZ", "price": 99.9, "quantity": 7 }
] }
PATCH /api/v1/products/{id}/variants/{sku}/stock
# 2) Sincronize estoque de uma variação pelo SKU (caso típico de ERP)
curl -X PATCH https://app.sellitbr.com/api/v1/products/PROD_ID/variants/CAM-P-AZ/stock \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "quantity": 20 }'
Você pode criar toda a estrutura de variações via API — tipos, opções e combinações — com PUT /api/v1/products/{id}/variants, sem o lojista precisar montar nada no painel. Veja o passo a passo em Criar variações.
Para apenas atualizar combinações já existentes (mapear o SKU pela primeira vez ou ajustar preço/estoque em lote), use PATCH /variants casando por id (vindo do GET) e enviando setSku. Depois disso, sincronize por sku.

Formato dos erros

Todos os erros retornam um objeto JSON com um campo error descrevendo o problema:

JSON
{ "error": "Pedido não encontrado." }

Códigos de status e seus significados:

400Corpo JSON inválido ou parâmetro malformado.
401Token ausente, expirado ou revogado. Renove via refresh_token.
403Escopo insuficiente para esta operação.
404Recurso não encontrado (ou pertence a outra loja).
409Conflito — ex.: produto com o mesmo nome já existe.
422Validação falhou — verifique os campos obrigatórios.
502Erro interno ao consultar o serviço de pedidos. Aguarde e tente novamente.
5xxErro interno da Sellit. Use retry com backoff exponencial.
Para 5xx, implemente retry com backoff exponencial (ex.: 1s, 2s, 4s, 8s) e limite o número de tentativas. Para 401, tente renovar o token antes de reautenticar o lojista.

Produtos

GET /api/v1/productsListar produtos (paginado, busca, ordenação)
POST /api/v1/productsCriar produto
GET /api/v1/products/{id}Detalhe do produto (imagens e variações)
PATCH /api/v1/products/{id}Atualização parcial
DELETE /api/v1/products/{id}Excluir produto

Estoque

PATCH /api/v1/products/{id}/stockAtualizar somente o saldo (produto simples)

Variações (SKU)

GET /api/v1/products/{id}/variantsListar variações com SKU, preço e estoque
PUT /api/v1/products/{id}/variantsCriar e atualizar variações em lote (cria tipos, opções e combinações)
PATCH /api/v1/products/{id}/variantsAtualizar variações existentes em lote (por id ou sku)
PATCH /api/v1/products/{id}/variants/{sku}/stockAtualizar estoque de uma variação por SKU

Mídia

GET /api/v1/products/{id}/imagesListar imagens
POST /api/v1/products/{id}/imagesAdicionar imagem por URL
DELETE /api/v1/products/{id}/images/{imageId}Remover imagem

Categorias e Clientes

GET /api/v1/categoriesListar categorias
GET /api/v1/customersListar clientes (derivados dos pedidos)

Pedidos

GET /api/v1/ordersListar pedidos
GET /api/v1/orders/{id}Detalhe do pedido
PATCH /api/v1/orders/{id}/shipping-statusAtualizar status de envio
POST /api/v1/orders/{id}/refundReembolsar pedido

Fretes

GET /api/v1/shipments/{code}/trackingRastrear envio

Webhooks

GET /api/v1/webhooksListar inscrições
POST /api/v1/webhooksCriar inscrição
DELETE /api/v1/webhooks/{id}Remover inscrição