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.
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}/refundexecuta sempre um reembolso total. O statuspartial_refundedpode aparecer em pedidos reembolsados pelo gateway diretamente, mas não é acionável via API.
Exemplo: criar um produto
Só 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.
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.
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.
# 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 }
] }# 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 }'PUT /api/v1/products/{id}/variants, sem o lojista precisar montar nada no painel. Veja o passo a passo em Criar variações.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:
{ "error": "Pedido não encontrado." }Códigos de status e seus significados:
| 400 | Corpo JSON inválido ou parâmetro malformado. |
| 401 | Token ausente, expirado ou revogado. Renove via refresh_token. |
| 403 | Escopo insuficiente para esta operação. |
| 404 | Recurso não encontrado (ou pertence a outra loja). |
| 409 | Conflito — ex.: produto com o mesmo nome já existe. |
| 422 | Validação falhou — verifique os campos obrigatórios. |
| 502 | Erro interno ao consultar o serviço de pedidos. Aguarde e tente novamente. |
| 5xx | Erro interno da Sellit. Use retry com backoff exponencial. |
Produtos
| GET /api/v1/products | Listar produtos (paginado, busca, ordenação) |
| POST /api/v1/products | Criar 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}/stock | Atualizar somente o saldo (produto simples) |
Variações (SKU)
| GET /api/v1/products/{id}/variants | Listar variações com SKU, preço e estoque |
| PUT /api/v1/products/{id}/variants | Criar e atualizar variações em lote (cria tipos, opções e combinações) |
| PATCH /api/v1/products/{id}/variants | Atualizar variações existentes em lote (por id ou sku) |
| PATCH /api/v1/products/{id}/variants/{sku}/stock | Atualizar estoque de uma variação por SKU |
Mídia
| GET /api/v1/products/{id}/images | Listar imagens |
| POST /api/v1/products/{id}/images | Adicionar imagem por URL |
| DELETE /api/v1/products/{id}/images/{imageId} | Remover imagem |
Categorias e Clientes
| GET /api/v1/categories | Listar categorias |
| GET /api/v1/customers | Listar clientes (derivados dos pedidos) |
Pedidos
| GET /api/v1/orders | Listar pedidos |
| GET /api/v1/orders/{id} | Detalhe do pedido |
| PATCH /api/v1/orders/{id}/shipping-status | Atualizar status de envio |
| POST /api/v1/orders/{id}/refund | Reembolsar pedido |
Fretes
| GET /api/v1/shipments/{code}/tracking | Rastrear envio |
Webhooks
| GET /api/v1/webhooks | Listar inscrições |
| POST /api/v1/webhooks | Criar inscrição |
| DELETE /api/v1/webhooks/{id} | Remover inscrição |