My Plux

Clientes
0
cadastrados
Total Lojas
0
em todos os clientes
Total Produtos
0
em todos os clientes

Painel do Administrador

Gerencie clientes e credenciais de acesso

Nome / Razão SocialEmail / LoginDocumentoTelefonePlanoLojasValorStatusAções
Planos
0
cadastrados
Total de Lojas
0
capacidade contratada
Valor Médio
R$ 0,00
por plano

Planos

Cadastre planos informando a quantidade de lojas permitidas e o valor a pagar

PlanoQuantidade de LojasValor MensalAPIStatusAções

Editor Whitelabel

Personalize o sistema e veja a simulação em tempo real antes de publicar

Pré-visualização em produção Cada alteração reflete em tempo real nos exemplos abaixo
Clientes Admin
Produtos128
Lojas6
Painel do Administrador Exemplo de cabeçalho com degradê
Ativo Inativo
ClienteStatusAção
Empresa AlphaAtivoVer
Empresa BetaPendenteVer
Página 1 de 5
Produto exemplo R$ 99,90
Produto exemplo R$ 149,00
Salvo com sucesso
Erro ao salvar

Integrações globais

Credenciais do aplicativo usadas por todos os sellers do Hub

H
Hub
Mercado Livre Mercado Livre
iFood iFood
Shopee Shopee
TikTok Shop TikTok Shop
Integrações
Produtos
0
no catálogo
Lojas
0
conectadas
Sincronizações
0
registradas

Visão Geral do Hub B2B

Gerencie seus produtos, lojas, pedidos e integrações

Utilize o menu lateral para navegar entre as opções completas do sistema.

Central de Notificações

Perguntas, mensagens e reclamações dos canais conectados

Selecione uma conversa à esquerda para ver o histórico e responder.

Total de Pedidos
0
recebidos das lojas
Pendentes
0
aguardando processamento
Concluídos
0
finalizados
Valor Total
R$ 0,00
em pedidos

Pedidos manuais

Pedidos cadastrados à mão no Hub (sem integração)

OrigemPedidoClienteDataItensValorStatusAções
Vendas
0
sincronizadas
Pacotes
0
com múltiplos itens
Com faturamento
0
dados fiscais
Valor Total
R$ 0,00
na página

Mercado Livre

Pedidos sincronizados da API do Mercado Livre (order + envio + pagamento + faturamento).

Canal Tipo ID Cliente Data Itens Valor Status Faturamento Ações

Canal

Integração em desenvolvimento

Em breve

Esta integração ainda não está disponível. Em breve você poderá sincronizar pedidos deste canal no Hub.

EM BREVE
Pedidos
0
sincronizados
Abertos
0
na página
Valor
R$ 0,00
na página

Pedidos iFood

Venda completa capturada via Events/Order API

PedidoClienteStatusTipoDataValorAções

Detalhe do Pedido iFood

—

Andamento
Entrega
Cancelar

Dados do Pedido

Cliente

Resumo

Itens do Pedido

Entrega

Status da logística

Clique em “Atualizar entrega” para buscar a situação atual.

Formas de pagamento

Totais

Subtotal—
Frete—
Taxas—
Descontos—
Total—
Já pago—
Pendente—

Cancelar pedido

Escolha o motivo e confirme. Esta ação cancela o pedido no iFood.

Pedidos
0
sincronizados
Abertos
0
na página
Valor
R$ 0,00
na página

Pedidos Shopee

Pedidos sincronizados via Open API v2

PedidoClienteStatusDataItensValorAções

Detalhe do Pedido Shopee

—

Dados do Pedido

Resumo

Itens do Pedido

#ProdutoSKUQtdUnit.Total

Entrega

Pedidos
0
sincronizados
Abertos
0
na página
Valor
R$ 0,00
na página
Com faturamento
0
CPF/CNPJ

Pedidos TikTok Shop

Pedidos sincronizados via TikTok Shop API

PedidoClienteStatusDataItensValorAções

Detalhe do Pedido TikTok Shop

—

Dados do Pedido

Resumo

Itens do Pedido

#ProdutoSKUQtdUnit.Total

Entrega

Faturamento (TikTok BR)

Dados fiscais do Get Order Detail: CPF/CNPJ, nome no documento e status de upload de NF.

Detalhe da Venda ML

Campos mapeados da API do Mercado Livre

Dados da Venda

Comprador

Itens do Pedido

# ID da venda ID do anúncio SKU Título Qtd Preço unit. Taxa ML Total Tipo do anúncio Status

Dados de Envio

Custos de Frete

Pagamento

Resumo Financeiro

Faturamento (billing-info)

Cancelamento / Reclamação

Cadastro de Pedido

Dados do Pedido

Status do Pedido

Itens do Pedido

Produto SKU Qtd. Valor Unit. Total Ações

Forma de Pagamento

Resumo Financeiro

SubtotalR$ 0,00
Desconto
Frete
TaxaR$ 0,00
Total do pedidoR$ 0,00
Total com taxaR$ 0,00
ParcelasÀ vista
Total
0
Em estoque
0
Estoque baixo
0
Categorias
0

Produtos Gerais

Catálogo Hub — anúncios por canal ficam nos submenus (vínculo pelo SKU)

0 selecionado(s)
ProdutoSKUEANCategoriaIntegraçãoVendaEstoqueStatusAções

Anúncios

Vinculados ao Produto Gerais pelo SKU

SKU Produto ID externo Status Estoque Loja Ações

Editar anúncio — Mercado Livre

SKU Hub: — · Produto: — · Abrir no Hub

Rascunho

Anúncio · Shopee

Assistente de publicação · SKU Hub: — · Produto: — · Abrir no Hub

Loja e categoria

Categoria é obrigatória para criar o anúncio nesta loja.

Dados do anúncio

Título, SKU, peso e descrição que a Shopee recebe.

Preço e estoque

Anúncio normal: um preço e o estoque geral do produto.

Variações

Cada opção ativa da grade do Hub vira um model na Shopee. Preço e estoque são os da variação.

Opção SKU Preço (R$) Estoque Model ID

Kit

Atenção: kit na Shopee só é possível se a conta do seller tiver liberação (whitelist BR/SIP). Sem essa permissão a API bloqueia a publicação. Componentes precisam já estar publicados como item na Shopee.

Verificando permissão da conta…

Componente SKU Qtd Item Shopee Principal

Publicar na Shopee

Confira loja, categoria e dados. Publicar envia o anúncio para a loja escolhida.

Loja—
Categoria—
Situação—
Item ID—
Rascunho

Anúncio · TikTok Shop

Assistente de publicação · SKU Hub: — · Produto: — · Abrir no Hub

Loja e categoria

A categoria define os atributos obrigatórios do TikTok Shop.

Dados do anúncio

Preço e estoque

Anúncio normal: um preço e o estoque geral.

Variações

Preço e estoque de cada opção vêm da grade do produto. Ao publicar, cada SKU sobe no TikTok.

Opção SKU Preço Estoque TikTok SKU
Sem grade.

Atributos obrigatórios

Preencha o que a categoria do TikTok exige antes de publicar.

Publicar no TikTok Shop

Loja—
Categoria—
Situação—
Product ID—
Rascunho

Anúncio Amazon

Assistente de publicação. Anúncio simples ou com variação (parent/child). Alterações levam 1–5 min para refletir.

Loja e vínculo

Catálogo Amazon

Dados do anúncio

NONE é anúncio normal. PARENT e CHILD montam a variação.

Campos obrigatórios

Publicar na Amazon

Consulte buy box, ofertas e taxas estimadas.

Pedidos Amazon

Pedidos sincronizados da SP-API (Brasil)

PedidoTítuloSKU / ASINTotalStatusData
Nenhum pedido. Clique em Buscar pedidos.

Pedidos 99Food

Pedidos recebidos da OpenAPI 99Food

PedidoTítuloSKUTotalStatusAções
Nenhum pedido 99Food.

Pedidos Nuvemshop

Pedidos da loja. Fechar, reabrir e cancelar na API.

PedidoTítuloSKUTotalStatusAções
Nenhum pedido Nuvemshop.

Detalhe do pedido Nuvemshop

—

Dados do pedido

Cliente

Resumo

Itens do pedido

ProdutoSKUQtdPreço

Entrega

Pagamento

Dados da nota

Endereço de faturamento

Anúncio · iFood

Assistente de publicação · SKU Hub: — · Produto: — · Abrir no Hub

Loja e categoria

Catálogo e categoria são obrigatórios para criar o item nesta loja.

Dados do item

Preço e estoque

Anúncio normal usa este preço e o estoque geral. Na grade, cada opção leva o próprio preço e estoque.

Extras do nicho

Campos adicionais conforme o nicho da loja.

Publicar no iFood

Loja—
Nicho—
Situação—
Item ID—
Rascunho

Anúncio · Nuvemshop

Assistente de publicação · SKU Hub: — · Produto: — · Abrir no Hub

Dados do anúncio

Sem seleção, as categorias que já estão na loja permanecem.

Status e visibilidade

Dados fiscais

Origem, tipo, NCM e CEST da nota. Sem pontuação.

Variante

SKU, código de barras, peso, medidas e custo saem do cadastro do Hub. Produto simples usa o estoque geral. Produto grade envia só o estoque de cada variação.

Visível na loja

Envio e mídia

Atributos

Até 3. Nome e valor precisam ir juntos. Vale para produto com uma variante. Se o produto do Hub for grade, as opções ativas sobem juntas neste anúncio.

Publicar na Nuvemshop

Produto simples sobe com o estoque geral. Se for grade, cada opção ativa sobe com o próprio preço e estoque.

Anúncio · 99Food

Assistente de publicação · SKU Hub: — · Produto: — · Abrir no Hub

Loja

Dados do item

Preço e estoque

Anúncio normal usa este preço e o estoque geral.

Publicar na 99Food

Loja—
Situação—
AppItemID—
Rascunho

Cadastro de Produto

Dados do Produto

Este produto é um kit (estrutura Hub)

Prefira definir o tipo na aba Integrações. Kit virtual no ML: aba Informações de kit.

Este produto é grade (variações Hub)

Prefira o tipo na aba Integrações. Associa variação e estoque/preço por opção.

Este produto tem adicionais

Ao ativar, a aba Adicionais lista os grupos cadastrados. Cada grupo respeita o mínimo e o máximo.

Preço

Status e Visibilidade

Logística e Dimensões

Estoque geral

Este estoque vale para todas as integrações. Na grade, cada variação tem o próprio estoque.

Imagens do Produto

Até 5 imagens. A primeira é a principal.

Tabelas de Preço do Produto

O valor da tabela é gravado ao sair do campo.

Tabela Valor de Custo Valor Padrão Valor da Tabela
KIT
Assistente de kit virtual
Mercado Livre · composição imutável após publicar
Rascunho

Marketplace e loja

Kits virtuais: 100% parametrizados com a API do Mercado Livre. Outros marketplaces em breve.

Parceiros não certificados: cadastre o usuário de teste no formulário da documentação de Kits Virtuais. Sem isso a API retorna “User is not allowed…” — o Hub tenta listar anúncios já publicados nesta loja como alternativa.

Tipo do produto (Hub)

Só aparecem canais com loja ativa. Ao ligar, você vai para a tela do anúncio para completar e publicar. Salvar no Hub atualiza anúncios já publicados.

Grade do produto

Escolha uma variação cadastrada e defina SKU, EAN, estoque, custo e preço de cada opção ativa.

Ativa Opção SKU (opc.) EAN (opc.) Estoque Custo (R$) Preço (R$)
Selecione uma variação para listar as opções.

Adicionais do produto

Escolha um adicional cadastrado e marque as opções deste produto. O mínimo e o máximo do grupo continuam valendo: deixe ativas pelo menos a quantidade mínima.

Categorias
0
Subcategorias
0

Categorias

Cadastro interno de categorias e subcategorias do hub

CategoriaSub categoriaAções

Unidades de Medida

Unidades usadas no cadastro de produtos

NomeSiglaAções
Variações
0
Opções
0

Variações

Cadastre uma variação e as opções dentro dela (ex.: P AZUL, M BRANCO)

VariaçãoOpçõesAções
Grupos
0
Opções
0

Adicionais

Grupos reutilizáveis para iFood (sabores, extras, ponto da carne). Associe nos produtos para publicar em massa.

GrupoOpçõesPreçoAções

Formas de pagamentos

Cadastre as condições financeiras usadas nos pedidos

IDNomeTipoParcelasTaxaStatusAções

Tabelas de Preço

Gerencie as tabelas de preço e vincule produtos com valores específicos

#Nome da TabelaDescriçãoStatusAções

Produtos da Tabela

Só esta tabela. Altere um preço e ele grava ao sair do campo, ou marque vários e use Salvar Preços.

Tabela—
Status—
Total de Produtos—
Aplicar Margem em Massa
Base de cálculo:
Margem de lucro:
%

Produtos Vinculados

Altere o valor da tabela para cada produto e cada variação

Produto Cód. SKU Valor de Custo Valor Padrão Valor da Tabela
Total Lojas
0
Ativas
0
Inativas
0

Lojas & Integrações

Gerencie todas as suas plataformas conectadas

Importar anúncios

Mercado Livre

Anúncios da conta

A busca filtra na hora por título, SKU, código MLB e palavras-chave.

0
Foto Título Categoria Preço Estoque Status Ações

Mensagem rápida

Cadastre respostas prontas para o chat da Central de Notificações. A marcada como automática é enviada ao receber uma pergunta.

MensagemEnvioAções

Carregando…

v1.0

Documentação da API

REST API para integrar produtos, tabelas de preço e pedidos com o Hub B2B.

Base URL https://seudominio.com.br/api
Ver Credenciais

Autenticação

Toda requisição de catálogo leva o Bearer Token e o Seller ID da conta. Os dois estão na tela de Credenciais.

HTTP Header
Authorization: Bearer plux_SEU_TOKEN
X-Seller-Id: SEU_SELLER_ID
Content-Type: application/json

O token plux_ autentica a conta. O cabeçalho X-Seller-Id é o Seller ID dessa mesma conta. Sem os dois, a API responde 422 ou 401. Nas vendas de marketplace, a query seller_id continua sendo o ID da loja no canal, além desses cabeçalhos.

Exemplo completo
POST /api/produtos
Authorization: Bearer plux_SEU_TOKEN
X-Seller-Id: SEU_SELLER_ID
Content-Type: application/json

{
  "nome": "Produto Exemplo",
  "sku": "PROD-001"
}

Nas rotas /api/{canal}/vendas o seller_id vai na query e é obrigatório. O valor é o identificador da loja naquele canal:

Mercado LivreID numérico da conta
Shopeeshop_id
TikTok Shopshop_id
iFoodmerchant id
Nuvemshopid da loja
AmazonSelling Partner ID (merchant id)
99FoodAppShopID
Exemplo
GET /api/amazon/vendas?seller_id=A1SELLERID
Authorization: Bearer plux_SEU_TOKEN

Acesse Credenciais para copiar o token e o Seller ID. Envie os dois em todas as chamadas de categorias, unidades, variações, adicionais, tabelas de preço, formas de pagamento, pedidos e produtos.

Produto simples

Produto sem grade e sem adicionais. Crie, consulte e atualize pelo SKU. Categoria e subcategoria são criadas se não existirem.

Campo ERP Campo API Obrigatório Observação
Nome do ProdutonomeSim
Código de Barrasgtin ou codigo_barrasNãoEAN/GTIN
SKU InternoskuSimIdentificador único
Categoria InternacategoriaSimCriada se não existir
SubcategoriasubcategoriaNãoCriada se não existir. Ex.: Bebidas > Refrigerantes
Descrição CompletadescricaoNão
MarcamarcaNãoNome da marca
FabricantefabricanteNão
Unidade de Medidaunidade ou unidade_medidaNãoSigla. Ex.: UN, CX
Custo (preço)custoNãoPadrão 0
Venda (preço)preco ou preco_vendaNãoPadrão 0
Quantidade em Estoqueestoque ou quantidade_estoqueSim
Estoque mínimoestoque_minimo ou estoque_minNãoPadrão 0
Dimensõesaltura_cm, largura_cm, comprimento_cmNãoNúmeros inteiros em centímetros. Aliases: altura, largura, comprimento
Pesopeso_kg, peso ou peso_liquidoNãoDecimal em kg
Imagem principalimagem ou imagem_urlNãoURL pública. O Hub baixa e salva como imagem principal, preservando as imagens extras.
StatusstatusNãoativo, inativo ou rascunho. Se omitido, fica ativo

Esses campos valem no POST e no PATCH. No PATCH, o SKU vai na URL. O Hub grava só o campo cujo valor mudou. Se o valor enviado for igual ao que já está salvo, esse campo não é alterado.

GET /api/produtos?page=1&per_page=20 Listar produtos

page começa em 1. per_page padrão 20, máximo 100. A resposta traz produtos e paginacao (total, pagina, ultima_pagina, por_pagina).

POST /api/produtos Criar produto
application/json
{
  "sku": "ERP-001",
  "codigo_barras": "7891234567890",
  "nome": "Produto do ERP",
  "categoria": "Eletrônicos",
  "subcategoria": "Celulares > Smartphones",
  "descricao": "Descrição completa do produto.",
  "marca": "Marca Exemplo",
  "custo": 1200.00,
  "preco_venda": 1999.90,
  "quantidade_estoque": 50,
  "estoque_minimo": 5,
  "unidade": "UN",
  "altura_cm": 10,
  "largura_cm": 20,
  "comprimento_cm": 30,
  "peso_kg": 1.5,
  "imagem": "https://erp.exemplo.com/imgs_produtos/produto.jpg",
  "status": "ativo"
}
application/json
{
  "message": "Produto criado.",
  "produto": {
    "sku": "ERP-001",
    "gtin": "7891234567890",
    "nome": "Produto do ERP",
    "custo": 1200,
    "preco": 1999.9,
    "estoque": 50,
    "estoque_minimo": 5,
    "marca": "Marca Exemplo",
    "unidade_medida": { "sigla": "UN" },
    "altura_cm": 10,
    "largura_cm": 20,
    "comprimento_cm": 30,
    "peso_kg": 1.5,
    "imagens": [{ "url": "/imagem/produtos/uuid/arquivo.jpg", "ordem": 0 }],
    "status": "ativo",
    "categoria": { "nome": "Eletrônicos" },
    "subcategoria": { "caminho": "Celulares > Smartphones" }
  }
}

Produto grade

Os mesmos campos do produto simples, mais o bloco variacao. O Hub cria a variação e as opções. Atualize com PATCH /api/produtos/{sku} enviando o mesmo JSON: só muda a opção ou o campo que veio diferente.

POST /api/produtos Criar produto grade
application/json
{
  "sku": "ERP-GRADE-001",
  "codigo_barras": "7891234567890",
  "nome": "Produto do ERP",
  "categoria": "Eletrônicos",
  "subcategoria": "Celulares > Smartphones",
  "descricao": "Descrição completa do produto.",
  "marca": "Marca Exemplo",
  "custo": 1200.00,
  "preco_venda": 1999.90,
  "quantidade_estoque": 50,
  "estoque_minimo": 5,
  "unidade": "UN",
  "altura_cm": 10,
  "largura_cm": 20,
  "comprimento_cm": 30,
  "peso_kg": 1.5,
  "imagem": "https://erp.exemplo.com/imgs_produtos/produto.jpg",
  "status": "ativo",
  "variacao": {
    "nome": "Tamanho e Cor",
    "opcoes": [
      { "nome": "P AZUL", "estoque": 5, "custo": 20, "preco": 49.90 },
      { "nome": "M BRANCO", "estoque": 8, "custo": 22, "preco": 54.90 }
    ]
  }
}

Cada opção leva estoque, custo e preço. Se vier só o nome, o Hub copia custo e preço de venda do produto e grava estoque 0. O estoque do produto passa a ser a soma das opções ativas. Opção ativa precisa de custo e preço acima de 0,01.

Produto adicionais

Os mesmos campos do produto simples, mais o array adicionais. O Hub cria o grupo e as opções. Atualize com PATCH /api/produtos/{sku} enviando o mesmo JSON: só muda o que veio diferente.

POST /api/produtos Criar produto com adicionais
application/json
{
  "sku": "PIZZA-001",
  "codigo_barras": "7891234567890",
  "nome": "Pizza",
  "categoria": "Pizzas",
  "descricao": "Descrição completa do produto.",
  "marca": "Marca Exemplo",
  "custo": 12.00,
  "preco_venda": 39.90,
  "quantidade_estoque": 10,
  "estoque_minimo": 2,
  "unidade": "UN",
  "altura_cm": 4,
  "largura_cm": 30,
  "comprimento_cm": 30,
  "peso_kg": 0.8,
  "imagem": "https://erp.exemplo.com/imgs_produtos/pizza.jpg",
  "status": "ativo",
  "tem_adicionais": true,
  "adicionais": [
    {
      "nome": "Bebidas",
      "tipo": "OFFER_UNIT",
      "min": 1,
      "max": 2,
      "opcoes": [
        { "sku": "REFRI-001", "preco": 0, "ativo": true },
        { "sku": "REFRI-002", "preco": 6.5, "ativo": true }
      ]
    }
  ]
}

tipo: SPECIFICATION, OFFER_UNIT, INGREDIENTS ou CUTLERY. A ordem do array é a ordem salva. Não combine com grade.

Variações

Catálogo opcional. O produto com grade já cria a variação. Aqui você lista, consulta, renomeia e exclui pelo nome.

RecursoIdentificador na APIExemplo
VariaçãonomeTamanho e Cor
OpçãonomeP, M, G, GG, P AZUL

Na URL, espaços vão com %20 (ex.: /api/variacoes/Tamanho%20e%20Cor). Escopos: produtos:read / produtos:write.

POST /api/variacoes Criar variação + opções
application/json
{
  "nome": "Tamanho e Cor",
  "opcoes": [
    "P AZUL",
    "P VERMELHO",
    "M AZUL",
    "M BRANCO",
    "G",
    "GG",
    "GG VERMELHO"
  ]
}
application/json
{
  "message": "Variação criada.",
  "variacao": {
    "nome": "Tamanho e Cor",
    "total_opcoes": 7,
    "opcoes": [
      { "nome": "P AZUL", "ordem": 1 },
      { "nome": "P VERMELHO", "ordem": 2 },
      { "nome": "M AZUL", "ordem": 3 },
      { "nome": "M BRANCO", "ordem": 4 },
      { "nome": "G", "ordem": 5 },
      { "nome": "GG", "ordem": 6 },
      { "nome": "GG VERMELHO", "ordem": 7 }
    ]
  }
}
GET /api/variacoes Listar variações
GET /api/variacoes/{nome} Detalhar variação
PATCH /api/variacoes/{nome} Renomear variação
application/json
{ "nome": "Grade P/M/G" }
POST /api/variacoes/{nome}/opcoes Adicionar opção (ex.: GG)
application/json
{ "nome": "GG" }
DELETE /api/variacoes/{nome}/opcoes/{opcao} Excluir opção
DELETE /api/variacoes/{nome} Excluir variação

Tabelas de Preço

Gerencie tabelas de preço e associe o valor de venda de cada produto por SKU. Ideal para integração com ERP.

CampoTipoObrigatórioDescrição
nomestringSim no cadastro / opcional no upsertNome público da tabela. Ex.: Atacado, Varejo, VIP.
descricaostringNãoDescrição da política de preço.
statusstringNãoativo ou inativo. Padrão: ativo.
valornumberSim no vínculo com produtoValor de venda do produto naquela tabela.

Para o ERP, use PUT /api/tabelas-preco/{tabelaPreco}/produtos/{sku}. Se a tabela não existir, o Hub cria; se existir, atualiza o valor do produto sem apagar outros produtos da tabela.

GET /api/tabelas-preco Listar tabelas
GET /api/tabelas-preco/{nome} Detalhar tabela pelo nome
POST /api/tabelas-preco Cadastra uma tabela de preço
application/json
{
  "nome": "Tabela Atacado",
  "descricao": "Preços para atacado",
  "status": "ativo"
}
application/json
{
  "message": "Tabela de preços criada.",
  "tabela": {
    "nome": "Tabela Atacado",
    "descricao": "Preços para atacado",
    "status": "ativo",
    "produtos_count": 0
  }
}
PATCH /api/tabelas-preco/{tabelaPreco} Atualiza uma tabela de preço
{tabelaPreco}Nome público da tabela de preço. Ex.: Tabela Atacado
application/json
{
  "nome": "Tabela VIP",
  "descricao": "Preços atualizados",
  "status": "ativo"
}
application/json
{
  "message": "Tabela de preços atualizada.",
  "tabela": {
    "nome": "Tabela VIP",
    "descricao": "Preços atualizados",
    "status": "ativo"
  }
}
PUT /api/tabelas-preco/{tabelaPreco}/produtos/{sku} Criar/atualizar tabela e valor por SKU
{tabelaPreco}Nome da tabela no Hub/API pública. Ex.: Atacado
{sku}SKU público do produto já cadastrado no Hub

Endpoint recomendado para ERP. O Hub cria a tabela se ela não existir e faz upsert do valor do produto em tabela_preco_itens sem remover os demais produtos/preços.

application/json
{
  "nome": "Atacado",
  "descricao": "Lista importada do ERP",
  "status": "ativo",
  "valor": 99.90
}
application/json
{
  "message": "Tabela de preço criada e valor salvo.",
  "tabela": {
    "nome": "Atacado",
    "descricao": "Lista importada do ERP",
    "status": "ativo",
    "produtos_count": 1
  },
  "produto": {
    "sku": "ERP-001",
    "nome": "Produto do ERP",
    "valor_tabela": 99.90
  }
}

Pedidos

Pedidos do Hub (ERP) ou vendas dos marketplaces. Use o seletor ao lado para alternar.

GET /api/pedidos Lista os pedidos do Hub
forma_pagamento_idID estável da forma (use em GET /api/formas-pagamento/{id})
forma_pagamento_uuidUUID da forma cadastrada no Hub
financeiroResposta com forma, parcelas, taxa_total e total_com_taxa
canal_vendaOrigem do pedido: plataforma da loja ou Manual
GET /api/pedidos/exportacao Exporta pedidos para ERP

Use somente_nao_importados=1 e o filtro status para controlar a importação.

POST /api/pedidos Cria pedido no Hub

Campos: data_pedido, cliente_nome, cliente_documento, cliente_telefone, cliente_email, endereço (cep, logradouro, numero_endereco, complemento, bairro, cidade, uf), loja (nome da loja), forma_pagamento_id ou forma_pagamento_nome, status, prioridade, desconto, frete e itens.

Cada item usa sku, produto_nome, quantidade e valor_unitario. O preço gravado é o enviado no item.

POST /api/pedidos/{numero_pedido}/marcar-importado Confirma importação ERP

Envie erp_import_id e erp_import_status após criar a venda no ERP.

Obrigatório: Authorization: Bearer plux_…, cabeçalho X-Seller-Id (Seller ID do Hub) e query seller_id = ID numérico da conta Mercado Livre.
GET /api/mercadolivre/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório
page / per_pagePaginação Hub
application/json
{
  "seller_id": 759409162,
  "vendas": [
    {
      "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "seller_id": 759409162,
      "venda": {
        "canal": "Mercado Livre",
        "tipo_venda": "Mercado Livre",
        "tipo_registro": "venda_item",
        "id_venda": "2000001234567890",
        "id_pacote": null,
        "e_pacote": false,
        "mlb_anuncio": "MLB123456789",
        "variation_id": null,
        "titulo": "Kit ferramentas 40 peças",
        "sku": "KIT-40",
        "quantidade": 1,
        "tipo_anuncio": "Clássico",
        "status_venda": "Pago",
        "status_detalhe": null,
        "data_venda": "2026-08-01T14:22:10-03:00",
        "data_update": "2026-08-01T18:01:00-03:00",
        "data_fechamento": null,
        "data_cancelamento": null,
        "motivo_cancelamento": null,
        "cancelado_por": null,
        "tem_reembolso": false,
        "id_reclamacao": null,
        "motivo_reclamacao": null
      },
      "comprador": {
        "comprador_id": "112233445",
        "nome_comprador": "João Silva"
      }
    }
  ],
  "paginacao": {
    "pagina": 1,
    "por_pagina": 20,
    "total": 42,
    "ultima_pagina": 3
  }
}
GET /api/mercadolivre/vendas/{order_id} Consulta a venda pelo ID

Devolve a venda já salva no Hub para esse ID.

order_idID do pedido no Mercado Livre
seller_idObrigatório (query)
Exemplo
GET /api/mercadolivre/vendas/2000001234567890?seller_id=759409162
Authorization: Bearer plux_SEU_TOKEN
Obrigatório: Authorization: Bearer plux_… e query seller_id = shop_id da loja Shopee conectada no Hub (mesmo valor de Lojas → seller_id).
GET /api/shopee/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório
page / per_pagePaginação Hub
Request
GET /api/shopee/vendas?seller_id=123456789&page=1&per_page=20
Authorization: Bearer plux_SEU_TOKEN
application/json
{
  "seller_id": "123456789",
  "vendas": [
    {
      "uuid": "a1b2c3d4-1111-2222-3333-444455556666",
      "seller_id": "123456789",
      "order": {
        "order_sn": "220101ABCDEF",
        "order_status": "READY_TO_SHIP",
        "create_time": 1726660500,
        "update_time": 1726663200,
        "buyer_user_id": 7788,
        "buyer_username": "Maria Souza",
        "fulfillment_flag": "fulfilled_by_local_seller",
        "payment_method": "ShopeePay",
        "total_amount": 59.8,
        "currency": "BRL",
        "actual_shipping_fee": 8.5,
        "estimated_shipping_fee": 0,
        "shipping_carrier": "Shopee Xpress",
        "recipient_address": {
          "name": "Maria Souza",
          "phone": "11999990000",
          "full_address": "Rua das Flores, 120 - Centro",
          "city": "Campinas",
          "state": "SP",
          "zipcode": "13010000",
          "region": "BR"
        },
        "item_list": [
          {
            "item_id": 998877,
            "item_name": "Cabo USB-C 2m",
            "item_sku": "CABO-USBC-2M",
            "model_id": 1001,
            "model_sku": "CABO-USBC-2M",
            "model_quantity_purchased": 2,
            "model_discounted_price": 29.9
          }
        ]
      }
    }
  ],
  "paginacao": {
    "pagina": 1,
    "por_pagina": 20,
    "total": 1,
    "ultima_pagina": 1
  }
}
GET /api/shopee/vendas/{order_sn} Consulta a venda pelo ID
order_snID do pedido na Shopee (path)
seller_idObrigatório (query)
Request
GET /api/shopee/vendas/220101ABCDEF?seller_id=123456789
Authorization: Bearer plux_SEU_TOKEN
application/json
{

  "seller_id": "123456789",
  "order_id": "220101ABCDEF",
  "vendas": [
    {
      "uuid": "a1b2c3d4-1111-2222-3333-444455556666",
      "seller_id": "123456789",
      "order": {
        "order_sn": "220101ABCDEF",
        "order_status": "READY_TO_SHIP",
        "create_time": 1726660500,
        "update_time": 1726663200,
        "buyer_user_id": 7788,
        "buyer_username": "Maria Souza",
        "fulfillment_flag": "fulfilled_by_local_seller",
        "payment_method": "ShopeePay",
        "total_amount": 59.8,
        "currency": "BRL",
        "actual_shipping_fee": 8.5,
        "estimated_shipping_fee": 0,
        "shipping_carrier": "Shopee Xpress",
        "recipient_address": {
          "name": "Maria Souza",
          "phone": "11999990000",
          "full_address": "Rua das Flores, 120 - Centro",
          "city": "Campinas",
          "state": "SP",
          "zipcode": "13010000",
          "region": "BR"
        },
        "item_list": [
          {
            "item_id": 998877,
            "item_name": "Cabo USB-C 2m",
            "item_sku": "CABO-USBC-2M",
            "model_id": 1001,
            "model_sku": "CABO-USBC-2M",
            "model_quantity_purchased": 2,
            "model_discounted_price": 29.9
          }
        ]
      }
    }
  ]
}
Obrigatório: Authorization: Bearer plux_… e query seller_id = shop_id da loja TikTok Shop conectada no Hub.
GET /api/tiktok/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório
page / per_pagePaginação Hub
Request
GET /api/tiktok/vendas?seller_id=998877&page=1&per_page=20
Authorization: Bearer plux_SEU_TOKEN
application/json
{
  "seller_id": "998877",
  "vendas": [
    {
      "uuid": "b2c3d4e5-aaaa-bbbb-cccc-ddddeeeeffff",
      "seller_id": "998877",
      "order": {
        "id": "5764501234567890123",
        "order_status": "AWAITING_SHIPMENT",
        "create_time": 1726744200,
        "update_time": 1726745100,
        "buyer_email": "carlos@example.com",
        "payment_method_name": "PIX",
        "payment": {
          "currency": "BRL",
          "total_amount": "89.90",
          "shipping_fee": "0.00"
        },
        "recipient_address": {
          "name": "Carlos Oliveira",
          "phone_number": "21988887777",
          "full_address": "Av. Brasil, 500",
          "city": "Rio de Janeiro",
          "province": "RJ",
          "postal_code": "22041080",
          "region_code": "BR"
        },
        "line_items": [
          {
            "product_id": "1729380000000000000",
            "product_name": "Fone Bluetooth TWS",
            "seller_sku": "FONE-TWS-PRETO",
            "sku_id": "1729380000000000001",
            "quantity": 1,
            "sale_price": "89.90"
          }
        ],
        "packages": [
          {
            "id": "PKG-9988",
            "shipping_provider_name": "TikTok Logistics"
          }
        ]
      }
    }
  ],
  "paginacao": {
    "pagina": 1,
    "por_pagina": 20,
    "total": 1,
    "ultima_pagina": 1
  }
}
GET /api/tiktok/vendas/{order_id} Consulta a venda pelo ID
Request
GET /api/tiktok/vendas/5764501234567890123?seller_id=998877
Authorization: Bearer plux_SEU_TOKEN
application/json
{

  "seller_id": "998877",
  "order_id": "5764501234567890123",
  "vendas": [
    {
      "uuid": "b2c3d4e5-aaaa-bbbb-cccc-ddddeeeeffff",
      "seller_id": "998877",
      "order": {
        "id": "5764501234567890123",
        "order_status": "AWAITING_SHIPMENT",
        "create_time": 1726744200,
        "update_time": 1726745100,
        "buyer_email": "carlos@example.com",
        "payment_method_name": "PIX",
        "payment": {
          "currency": "BRL",
          "total_amount": "89.90",
          "shipping_fee": "0.00"
        },
        "recipient_address": {
          "name": "Carlos Oliveira",
          "phone_number": "21988887777",
          "full_address": "Av. Brasil, 500",
          "city": "Rio de Janeiro",
          "province": "RJ",
          "postal_code": "22041080",
          "region_code": "BR"
        },
        "line_items": [
          {
            "product_id": "1729380000000000000",
            "product_name": "Fone Bluetooth TWS",
            "seller_sku": "FONE-TWS-PRETO",
            "sku_id": "1729380000000000001",
            "quantity": 1,
            "sale_price": "89.90"
          }
        ],
        "packages": [
          {
            "id": "PKG-9988",
            "shipping_provider_name": "TikTok Logistics"
          }
        ]
      }
    }
  ]
}
Obrigatório: Authorization: Bearer plux_… e query seller_id = merchant_id da loja iFood conectada no Hub.
GET /api/ifood/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório
page / per_pagePaginação Hub
Request
GET /api/ifood/vendas?seller_id=a1b2c3d4-merchant&page=1&per_page=20
Authorization: Bearer plux_SEU_TOKEN
application/json
{
  "seller_id": "a1b2c3d4-merchant",
  "vendas": [
    {
      "uuid": "c3d4e5f6-7777-8888-9999-000011112222",
      "seller_id": "a1b2c3d4-merchant",
      "order": {
        "id": "d4e5f6a7-1111-2222-3333-444455556666",
        "orderType": "DELIVERY",
        "salesChannel": "IFOOD",
        "createdAt": "2026-09-19T19:10:00.000Z",
        "customer": {
          "id": "cust-9988",
          "name": "Ana Paula",
          "documentNumber": "11122233344",
          "phone": { "number": "11977776666" }
        },
        "items": [
          {
            "id": "item-1",
            "name": "Combo X-Burguer + Batata",
            "externalCode": "COMBO-XB",
            "quantity": 1,
            "unitPrice": { "value": 42.9 },
            "price": { "value": 42.9 }
          }
        ],
        "totalPrice": { "value": 47.9, "fees": 0 },
        "payments": {
          "methods": [{ "method": "CREDIT", "type": "ONLINE", "value": 47.9 }],
          "pending": 0
        },
        "delivery": {
          "deliveredBy": "IFOOD",
          "deliveryAddress": {
            "streetName": "Rua Augusta",
            "streetNumber": "1500",
            "neighborhood": "Consolação",
            "city": "São Paulo",
            "state": "SP",
            "postalCode": "01304001",
            "country": "BR"
          }
        }
      }
    }
  ],
  "paginacao": {
    "pagina": 1,
    "por_pagina": 20,
    "total": 1,
    "ultima_pagina": 1
  }
}
GET /api/ifood/vendas/{order_id} Consulta a venda pelo ID
Request
GET /api/ifood/vendas/d4e5f6a7-1111-2222-3333-444455556666?seller_id=a1b2c3d4-merchant
Authorization: Bearer plux_SEU_TOKEN
application/json
{

  "seller_id": "a1b2c3d4-merchant",
  "order_id": "d4e5f6a7-1111-2222-3333-444455556666",
  "vendas": [
    {
      "uuid": "c3d4e5f6-7777-8888-9999-000011112222",
      "seller_id": "a1b2c3d4-merchant",
      "order": {
        "id": "d4e5f6a7-1111-2222-3333-444455556666",
        "orderType": "DELIVERY",
        "salesChannel": "IFOOD",
        "createdAt": "2026-09-19T19:10:00.000Z",
        "customer": {
          "id": "cust-9988",
          "name": "Ana Paula",
          "documentNumber": "11122233344",
          "phone": { "number": "11977776666" }
        },
        "items": [
          {
            "id": "item-1",
            "name": "Combo X-Burguer + Batata",
            "externalCode": "COMBO-XB",
            "quantity": 1,
            "unitPrice": { "value": 42.9 },
            "price": { "value": 42.9 }
          }
        ],
        "totalPrice": { "value": 47.9, "fees": 0 },
        "payments": {
          "methods": [{ "method": "CREDIT", "type": "ONLINE", "value": 47.9 }],
          "pending": 0
        },
        "delivery": {
          "deliveredBy": "IFOOD",
          "deliveryAddress": {
            "streetName": "Rua Augusta",
            "streetNumber": "1500",
            "neighborhood": "Consolação",
            "city": "São Paulo",
            "state": "SP",
            "postalCode": "01304001",
            "country": "BR"
          }
        }
      }
    }
  ]
}
Obrigatório: Authorization: Bearer plux_… e query seller_id = id da loja Nuvemshop (o mesmo número da loja conectada no Hub). Escopos: pedidos:read para listar, pedidos:write para sincronizar.
GET /api/nuvemshop/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório. Id da loja Nuvemshop
page / per_pagePaginação Hub (máx. 100)
application/json
{
  "seller_id": "1234567",
  "vendas": [
    {
      "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "seller_id": "1234567",
      "venda": {
        "canal": "Nuvemshop",
        "id_venda": "18492011",
        "numero": 1042,
        "titulo": "Camiseta branca",
        "sku": "CAM-BR-M",
        "nome_comprador": "Maria Souza",
        "status": "Pago",
        "status_envio": "Não embalado",
        "total": "129.90",
        "data_venda": "2026-09-28T11:20:00-03:00"
      }
    }
  ],
  "paginacao": { "pagina": 1, "por_pagina": 20, "total": 1, "ultima_pagina": 1 }
}
GET /api/nuvemshop/vendas/{order_id} Consulta o pedido pelo ID
Exemplo
GET /api/nuvemshop/vendas/18492011?seller_id=1234567
Authorization: Bearer plux_SEU_TOKEN
Obrigatório: Authorization: Bearer plux_… e query seller_id = Selling Partner ID da Amazon (merchant id da loja conectada no Hub). Escopos: pedidos:read para listar, pedidos:write para sincronizar.
GET /api/amazon/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório. Selling Partner ID
page / per_pagePaginação Hub (máx. 100)
application/json
{
  "seller_id": "A1SELLERID",
  "vendas": [
    {
      "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "seller_id": "A1SELLERID",
      "venda": {
        "canal": "Amazon",
        "id_venda": "702-1234567-8901234",
        "titulo": "Camiseta branca",
        "sku": "CAM-BR-M",
        "nome_comprador": "Maria Souza",
        "status": "Pago",
        "order_status": "Unshipped",
        "total": "129.90",
        "data_venda": "2026-09-28T11:20:00-03:00"
      }
    }
  ],
  "paginacao": { "pagina": 1, "por_pagina": 20, "total": 1, "ultima_pagina": 1 }
}
GET /api/amazon/vendas/{order_id} Consulta o pedido pelo ID
Exemplo
GET /api/amazon/vendas/702-1234567-8901234?seller_id=A1SELLERID
Authorization: Bearer plux_SEU_TOKEN
Obrigatório: Authorization: Bearer plux_… e query seller_id = AppShopID da loja 99Food conectada no Hub. Pedidos novos chegam pelo webhook. Escopos: pedidos:read para listar, pedidos:write para sincronizar.
GET /api/99food/vendas Lista vendas

Lista as vendas já salvas. Use page e per_page.

seller_idObrigatório. AppShopID
page / per_pagePaginação Hub (máx. 100)
application/json
{
  "seller_id": "APP_SHOP_ID",
  "vendas": [
    {
      "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "seller_id": "APP_SHOP_ID",
      "venda": {
        "canal": "99Food",
        "id_venda": "99887766",
        "titulo": "Combo lanche",
        "sku": "COMBO-01",
        "nome_comprador": "João Lima",
        "status": "Novo",
        "total": "42.90",
        "data_venda": "2026-09-28T11:20:00-03:00"
      }
    }
  ],
  "paginacao": { "pagina": 1, "por_pagina": 20, "total": 1, "ultima_pagina": 1 }
}
GET /api/99food/vendas/{order_id} Consulta o pedido pelo ID
Exemplo
GET /api/99food/vendas/99887766?seller_id=APP_SHOP_ID
Authorization: Bearer plux_SEU_TOKEN

Formas de pagamentos

Formas de pagamento cadastradas no Hub.

GET /api/formas-pagamento Lista formas de pagamento
ativoOpcional. Use 1 para listar apenas ativas
GET /api/formas-pagamento/{id} Busca forma por ID

Use o forma_pagamento_id retornado em GET /api/pedidos.

Categorias e subcategorias

Identificador da categoria: nome. Subcategoria: caminho (ex.: Camisetas > Básicas). Cabeçalhos: Authorization e X-Seller-Id.

GET/api/categoriasLista categorias e subcategorias
GET/api/categorias/{nome}Detalha uma categoria
POST/api/categoriasCria categoria

Body: {"nome":"Vestuário"}

POST/api/categorias/{nome}/subcategoriasCria subcategoria

Body: {"caminho":"Camisetas > Básicas"}. Também aceita nome no lugar de caminho.

PATCH/api/categorias/{nome}Renomeia

Body: {"nome":"Novo nome"}. Subcategoria: PATCH /api/categorias/{nome}/subcategorias/{caminho} com caminho.

Unidades de medida

Identificador: sigla. No produto, envie essa sigla em unidade.

GET/api/unidades-medidaLista
GET/api/unidades-medida/{sigla}Detalha pela sigla
POST/api/unidades-medidaCria

Body: {"nome":"Unidade","sigla":"UN"}. Atualizar: PATCH /api/unidades-medida/{sigla} com nome e sigla.

Adicionais

Catálogo opcional. O produto com adicionais já cria o grupo. Identificador: nome.

CampoObrigatórioObservação
nomeSimNome do grupo
tipoNãoSPECIFICATION, OFFER_UNIT, INGREDIENTS ou CUTLERY. Padrão SPECIFICATION
minNãoMínimo de opções que o cliente precisa escolher
maxNãoLimite de escolha do cliente. Não limita quantas opções o grupo oferece
opcoes[].nomeSim, nos outros tiposNo tipo OFFER_UNIT o nome vem do produto
opcoes[].skuSim, no tipo OFFER_UNITSKU de um produto já cadastrado no Hub. A opção fica associada a esse produto
opcoes[].precoNãoSe omitir no tipo OFFER_UNIT, usa o preço do produto. Pode enviar outro valor
GET/api/adicionaisLista grupos e opções
GET/api/adicionais/{nome}Detalha um grupo
POST/api/adicionaisCria grupo

Tipo bebida/extra (OFFER_UNIT): cada opção leva o sku de um produto que já existe. O nome da opção fica o nome desse produto. O preco é opcional: se não enviar, usa o preço do produto; se enviar, vale o valor informado.

Exemplo: {"nome":"Bebidas","tipo":"OFFER_UNIT","min":0,"max":1,"opcoes":[{"sku":"REFRI-001","preco":0},{"sku":"REFRI-002","preco":6.5}]}

A resposta de cada opção traz nome, preco e produto_sku.

Nova opção depois: POST /api/adicionais/{nome}/opcoes com sku e, se quiser, preco.

Nos outros tipos, a opção continua com nome e preco livres.

PATCH/api/adicionais/{nome}Atualiza o grupo

Body: {"nome":"Bebidas","tipo":"OFFER_UNIT","min":1,"max":2}

Dados de faturamento

Dados fiscais dos pedidos do Hub.

Pedidos manuais / Hub usam os dados do cliente no próprio pedido. Endpoints dedicados de faturamento Hub (NF-e, etc.) serão documentados aqui.
GET /api/pedidos/{numero_pedido} Dados do cliente no pedido Hub

Enquanto não houver endpoint específico de faturamento Hub, use o detalhe do pedido: cliente_nome, cliente_documento, endereço e demais campos fiscais do cadastro.

Envio

Dados de envio dos pedidos do Hub.

Pedidos manuais / Hub: dados de envio do próprio pedido. Endpoints dedicados de logística Hub serão documentados aqui.
GET /api/pedidos/{numero_pedido} Dados de envio no pedido Hub

Enquanto não houver endpoint específico de envio Hub, use o detalhe do pedido (endereço, frete e status de entrega do cadastro).

Códigos de Resposta

Todas as respostas de erro seguem um padrão JSON consistente.

application/json
{
  "message": "Descrição do erro",
  "errors": {
    "campo": ["mensagem de validação"]
  }
}
CódigoStatusQuando ocorre
200OKRequisição bem-sucedida
201CreatedRecurso criado com sucesso
401UnauthorizedToken ausente ou inválido
403ForbiddenSem permissão para o recurso
404Not FoundRecurso não encontrado
422UnprocessableFalha de validação dos campos
500Server ErrorErro interno no servidor

Postman Collection

Baixe o JSON oficial para importar no Postman e testar a integração com segurança.

Importe a collection e preencha duas variáveis: access_token (Bearer plux_) e seller_id (Seller ID da tela de Credenciais). Cada requisição já manda Authorization e X-Seller-Id. A documentação de cada chamada, dentro do Postman, traz o exemplo de body e de resposta.

GET /downloads/Hub-B2B-API.postman_collection.json Download da collection
Carregando documentação…

Laboratório de API

Ambiente de desenvolvimento

Teste endpoints com token e Seller ID, monitore consumo e depure a integração.

Meus aplicativos

Console de desenvolvimento

End-points

End-points