VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Sellers (lojistas)

Criar um seller

Cadastra um seller pelo painel, criando o usuário dono, gerando o slug e enviando o login por e-mail.

Cria o seller com status pendente e, quando você não informa um usuário existente, cria também o usuário dono que acessa o painel do seller. Só depois que o seller existe é que o e-mail com login e senha é enviado, para não mandar acesso de uma loja que não foi criada.

Exige o privilégio manage_vendors.

POST/api/v1/admin/vendorsAdmin

Cadastra um seller

Corpo da requisição

company_namestringobrigatório
Nome fantasia (o que aparece na vitrine). Gera o slug.
emailstringobrigatório
E-mail do seller. Vira o login do dono, se ele for criado.
legal_namestring
Razão social.
cnpjstring
CNPJ com ou sem pontuação. Validado e gravado só com dígitos. Vazio é aceito.
tax_regimestring
meisimples_nacionallucro_presumidolucro_reallucro_arbitrado
Regime tributário. Vazio é aceito.
descriptionstring
Descrição.
phonestring
Telefone.
mobile_phonestring
Celular.
websitestring
Site.
logo_urlstring
Logo (aplicado depois da criação).
address_line1string
Endereço.
address_districtstring
Bairro.
citystring
Cidade.
statestring
Estado (sigla).
postal_codestring
CEP.
countrystringpadrão: BR
País (ISO de 2 letras).
commission_ratenumber
Comissão em percentual (0 a 100). Sem este campo vale o padrão da plataforma (10).
statusstring
pendingactivesuspendedrejected
Status inicial. Aplicado numa segunda etapa: se falhar, o seller fica pendente e a resposta ainda é 201.
user_iduuid
Usuário seller que já existe e será o dono. Sem ele, um usuário novo é criado.
first_namestring
Nome do dono criado.
last_namestring
Sobrenome do dono criado.
passwordstring
Senha do dono criado (mínimo de 10 caracteres). Sem ela, uma senha é gerada.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/vendors" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"company_name":"Casa Aurora","email":"contato@casaaurora.example.com","legal_name":"Casa Aurora Comércio LTDA","cnpj":"11.222.333/0001-81","tax_regime":"simples_nacional","city":"São Paulo","state":"SP","postal_code":"01310-100","commission_rate":12,"first_name":"Aurora","last_name":"Menezes"}'

Resposta

201Seller criado
json
{
  "id": "5f1d2c3b-4a59-4e68-9b70-81a2b3c4d5e6",
  "display_id": 275,
  "user_id": "0a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
  "company_name": "Casa Aurora",
  "slug": "casa-aurora",
  "status": "P",
  "cnpj": "11222333000181",
  "legal_name": "Casa Aurora Comércio LTDA",
  "email": "contato@casaaurora.example.com",
  "city": "São Paulo",
  "state": "SP",
  "postal_code": "01310-100",
  "country": "BR",
  "commission_rate": 12,
  "commission_type": "percentage",
  "payment_model": "marketplace_collects",
  "fulfillment_type": "vendor_fulfilled",
  "created_at": "2026-10-11T22:30:00Z",
  "updated_at": "2026-10-11T22:30:00Z"
}

A resposta é o seller completo, com os mesmos campos de Consultar seller.

Erros

StatusQuandoCorpo de exemplo
400Falta company_name ou email.{"error":"company_name is required"}
400E-mail inválido.{"error":"vendor_email_invalid","detail":"..."}
400CNPJ inválido.{"error":"vendor_cnpj_invalid","detail":"..."}
400Regime tributário fora da lista.{"error":"vendor_tax_regime_invalid","detail":"..."}
400Comissão fora de 0 a 100.{"error":"vendor_commission_rate_out_of_range","detail":"..."}
400Senha do dono com menos de 10 caracteres.{"error":"vendor_owner_password_weak","detail":"..."}
409O e-mail do login já tem conta ativa.{"error":"email_already_registered"}
409CNPJ já usado por outro seller.{"error":"vendor_cnpj_in_use","detail":"..."}
409E-mail do seller já usado por outro seller.{"error":"vendor_email_in_use","detail":"..."}
401 / 403Sem token ou sem manage_vendors.{"error":"missing authorization header"}
Um e-mail é enviado ao dono

Sem user_id, o dono recebe um e-mail com o endereço do painel, o login e a senha. Em testes, use um e-mail seu, não de terceiros.

Não existe campo slug neste cadastro

O corpo desta rota não lê slug: o slug é gerado do company_name (com sufixo -2, -3 se já existir). Para escolher o slug, crie o seller e use Atualizar seller com slug, conferindo antes em check-slug.

Veja também

  • Consultar e atualizar
  • Mudar status
  • Visão geral
Anterior
Listar sellers e checar slug
Próxima
Consultar, editar e excluir seller
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também