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.
/api/v1/admin/vendorsAdminCadastra um seller
Corpo da requisição
company_namestringobrigatórioNome fantasia (o que aparece na vitrine). Gera o slug.
emailstringobrigatórioE-mail do seller. Vira o login do dono, se ele for criado.
legal_namestringRazão social.
cnpjstringCNPJ com ou sem pontuação. Validado e gravado só com dígitos. Vazio é aceito.
tax_regimestringmeisimples_nacionallucro_presumidolucro_reallucro_arbitradoRegime tributário. Vazio é aceito.
descriptionstringDescrição.
phonestringTelefone.
mobile_phonestringCelular.
websitestringSite.
logo_urlstringLogo (aplicado depois da criação).
address_line1stringEndereço.
address_districtstringBairro.
citystringCidade.
statestringEstado (sigla).
postal_codestringCEP.
countrystringpadrão: BRPaís (ISO de 2 letras).
commission_ratenumberComissão em percentual (0 a 100). Sem este campo vale o padrão da plataforma (10).
statusstringpendingactivesuspendedrejectedStatus inicial. Aplicado numa segunda etapa: se falhar, o seller fica pendente e a resposta ainda é
201.user_iduuidUsuário seller que já existe e será o dono. Sem ele, um usuário novo é criado.
first_namestringNome do dono criado.
last_namestringSobrenome do dono criado.
passwordstringSenha 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
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Falta company_name ou email. | {"error":"company_name is required"} |
| 400 | E-mail inválido. | {"error":"vendor_email_invalid","detail":"..."} |
| 400 | CNPJ inválido. | {"error":"vendor_cnpj_invalid","detail":"..."} |
| 400 | Regime tributário fora da lista. | {"error":"vendor_tax_regime_invalid","detail":"..."} |
| 400 | Comissão fora de 0 a 100. | {"error":"vendor_commission_rate_out_of_range","detail":"..."} |
| 400 | Senha do dono com menos de 10 caracteres. | {"error":"vendor_owner_password_weak","detail":"..."} |
| 409 | O e-mail do login já tem conta ativa. | {"error":"email_already_registered"} |
| 409 | CNPJ já usado por outro seller. | {"error":"vendor_cnpj_in_use","detail":"..."} |
| 409 | E-mail do seller já usado por outro seller. | {"error":"vendor_email_in_use","detail":"..."} |
| 401 / 403 | Sem token ou sem manage_vendors. | {"error":"missing authorization header"} |