Sellers (lojistas)
O que é um seller no marketplace, seu ciclo de vida de status e o mapa das rotas de cadastro, status, financeiro e equipe do administrador.
Seller (lojista, ou vendor na API) é a empresa que vende dentro da loja. Cada seller tem cadastro próprio (razão social, CNPJ, endereço, dados bancários), um slug que forma a URL da vitrine dele, uma taxa de comissão que a plataforma retém de cada venda, e uma equipe de usuários que acessam o painel do seller. Esta seção é o cadastro visto pelo administrador da loja. Preferências do seller (categorias permitidas, férias, visibilidade) estão em Configurações do seller.
Como funciona
Um seller novo nasce pendente. Ao ser aprovado vira ativo e pode vender. O administrador pode suspender (os produtos ativos passam a ocultos), devolver à fila (volta a pendente) ou recusar (com motivo). A exclusão tira o seller de todas as listas.
Status do seller
| Letra | Palavra | Significado |
|---|---|---|
P | pending | Aguardando aprovação. Não vende. |
A | active | Aprovado, vendendo. Ao aprovar, produtos ocultos por suspensão voltam a ativos. |
D | suspended | Suspenso: produtos ativos passam a ocultos (H). A mesma letra marca o seller excluído (deleted_at preenchido). |
R | rejected | Recusado, com rejection_reason. |
- Cadastre ou receba a candidatura
Crie o seller pelo painel, ou o seller se candidata pela vitrine e aparece como pendente (veja Candidaturas).
- Complete o cadastro
Use Completude do cadastro para ver o que falta (CNPJ, banco) e edite os dados.
- Aprove e acompanhe
Mude o status para ativo e acompanhe saldo, extrato e receita.
Conceitos-chave
Dinheiro e comissão
commission_rate é percentual (10 = 10%) e marketplace_shipping_fee_bps é em pontos-base (500 = 5%). Saldos, extratos e receita saem em centavos. O seller recebe o valor bruto menos a comissão, conforme o payment_model (marketplace_collects: a plataforma recebe e repassa; direct_to_vendor: o pagamento vai direto ao seller).
Ids
O id do seller é UUID. Há também display_id, um número sequencial amigável para telas (não use como chave).
Slug
Minúsculas, números e hífens (^[a-z0-9]+(-[a-z0-9]+)*$), de 2 a 100 caracteres, fora a lista de nomes reservados (admin, por exemplo). Se você não enviar, ele é gerado do nome e, se já existir, ganha sufixo (-2, -3). O slug de um seller excluído não é reaproveitado.
Endpoints
| Método | Caminho | Para que serve | Auth |
|---|---|---|---|
| GET | /api/v1/admin/vendors | Listar sellers | admin |
| GET | /api/v1/admin/vendors/check-slug | Checar slug | admin |
| POST | /api/v1/admin/vendors | Criar seller | admin |
| GET | /api/v1/admin/vendors/{id} | Consultar seller | admin |
| PUT | /api/v1/admin/vendors/{id} | Atualizar seller | admin |
| DELETE | /api/v1/admin/vendors/{id} | Excluir seller | admin |
| PATCH | /api/v1/admin/vendors/{id}/status | Mudar status | admin |
| PATCH | /api/v1/admin/vendors/{id}/reject | Recusar | admin |
| GET | /api/v1/admin/vendors/{id}/application | Candidatura do seller | admin |
| GET | /api/v1/admin/vendors/{id}/balance | Saldo | admin |
| GET | /api/v1/admin/vendors/{id}/statement | Extrato | admin |
| GET | /api/v1/admin/vendors/{id}/revenue | Receita no período | admin |
| GET | /api/v1/admin/vendors/{id}/completeness | Completude do cadastro | admin |
| GET | /api/v1/admin/vendors/{id}/team | Listar equipe | admin |
| POST | /api/v1/admin/vendors/{id}/team | Adicionar à equipe | admin |
| DELETE | /api/v1/admin/vendors/{id}/team/{userId} | Remover da equipe | admin |
Erros comuns
- Ler
statuscomo palavra. O JSON trazA,P,D,R. O objetostatus_countsda lista, ao contrário, usa palavras. - Mandar a comissão em pontos-base.
commission_rate: 1000é recusado (vendor_commission_rate_out_of_range); é percentual de 0 a 100. - Esperar 404 em id mal formado.
GET /vendors/abcdevolve 404, mas outras rotas com id inválido respondem 500. - Tentar trocar a senha por
PUT /vendors/{id}. O campopasswordé recusado (400 password_not_updatable); use a rota de usuário. - Confundir suspender com excluir. As duas usam a letra
D, mas excluir preenchedeleted_ate remove o seller das listas. - Esquecer que criar dispara e-mail. Sem
user_id, o dono é criado e recebe login e senha por e-mail.