Cadastro e configurações
Lê e altera o cadastro do seller (empresa, endereço, contato, conta de repasse, preferências) e informa o prazo de postagem.
Ler o cadastro
Devolve o cadastro completo do seller do token. É a mesma resposta de GET /api/v1/vendor/profile. Campos sem valor são omitidos. Além dos campos abaixo, voltam com o mesmo nome os campos de cadastro aceitos em Alterar o cadastro (empresa, endereço, contato, banco, preferências).
/api/v1/vendor/settingsSellerLer o cadastro do seller
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/settings" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "7c1f0b52-3a64-4d1e-9a40-5f0c2b6a91d3",
"display_id": 42,
"user_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"company_name": "Minha Empresa",
"slug": "minha-empresa",
"status": "active",
"cnpj": "12345678000195",
"legal_name": "Minha Empresa Comércio Ltda",
"tax_regime": "simples_nacional",
"email": "contato@minhaempresa.example",
"phone": "+551133334444",
"address_line1": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"postal_code": "01310-100",
"country": "BR",
"commission_rate": 10,
"commission_type": "percentage",
"payment_model": "marketplace_collects",
"fulfillment_type": "vendor_fulfilled",
"marketplace_shipping_fee_bps": 0,
"payout_method": "bank_transfer",
"bank_code": "341",
"bank_agency": "1234",
"bank_account": "56789-0",
"pix_key": "contato@minhaempresa.example",
"logo_url": "https://cdn.example.com/vendor/logo.png",
"description": "Cafeteiras e acessórios.",
"terms_accepted": true,
"products_require_approval": false,
"email_new_order": true,
"email_order_status": true,
"email_low_stock": true,
"email_payout": true,
"is_on_vacation": false,
"debt_balance": 0,
"created_at": "2026-09-01T12:00:00Z",
"updated_at": "2026-10-11T18:20:00Z"
}{
"vendor": null,
"vendor_profile_required": true
}Campos da resposta
iduuiddisplay_idintegeruser_iduuidstatusstringpending, active, suspended, deleted.commission_ratenumbercommission_typestringpercentage). Só leitura.payment_modelstringmarketplace_collects (a loja recebe e repassa) ou direct_to_vendor. Só leitura.fulfillment_typestringvendor_fulfilled ou marketplace_fulfilled. Só leitura.marketplace_shipping_fee_bpsintegerterms_acceptedbooleanproducts_require_approvalbooleanis_on_vacationbooleandebt_balanceintegercreated_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação). | {"error":"vendor_pending_review","message":"..."} |
Alterar o cadastro
Altera só os campos enviados (alteração parcial). A resposta é o cadastro completo, igual à leitura. É a mesma rota de PUT /api/v1/vendor/profile. Exige um privilégio de configuração da equipe.
/api/v1/vendor/settingsSellerAlterar o cadastro do seller
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
company_namestringlegal_namestringslugstring^[a-z0-9]+(-[a-z0-9]+)*$). Reservados: new, edit, admin, api, register, login, logout, settings, profile, create, delete, search, all, page, index, null, undefined, vendors.cnpjstringcnae_codestringstate_regstringtax_regimestringmeisimples_nacionallucro_presumidolucro_reallucro_arbitradorep_full_namestringrep_cpfstringrep_birth_datestringAAAA-MM-DD).rep_emailstringrep_phonestringrep_mother_namestringdpo_namestringdpo_emailstringdpo_phonestringemailstringphonestringmobile_phonestringwebsitestringaddress_line1stringaddress_numberstringaddress_complementstringaddress_districtstringaddress_line2stringcitystringstatestringpostal_codestringcountrystringlatitudenumberlongitudenumberpayout_methodstringbank_transfer.bank_codestringbank_namestringbank_agencystringbank_accountstringbank_account_typestringcheckingsavingsbank_account_holderstringpix_keystringemail_new_orderbooleanemail_order_statusbooleanemail_low_stockbooleanemail_payoutbooleanlogo_urlstringemail_logo_urlstringbanner_urlstringdescriptionstringignore_emailstringsettlement_term_daysintegersettlement_term_anchorstringExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/settings" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"company_name": "Minha Empresa",
"phone": "+551133334444",
"email_low_stock": false
}'Resposta
{
"id": "7c1f0b52-3a64-4d1e-9a40-5f0c2b6a91d3",
"display_id": 42,
"user_id": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc",
"company_name": "Minha Empresa",
"slug": "minha-empresa",
"status": "active",
"cnpj": "12345678000195",
"legal_name": "Minha Empresa Comércio Ltda",
"tax_regime": "simples_nacional",
"email": "contato@minhaempresa.example",
"phone": "+551133334444",
"address_line1": "Av. Paulista, 1000",
"city": "São Paulo",
"state": "SP",
"postal_code": "01310-100",
"country": "BR",
"commission_rate": 10,
"commission_type": "percentage",
"payment_model": "marketplace_collects",
"fulfillment_type": "vendor_fulfilled",
"marketplace_shipping_fee_bps": 0,
"payout_method": "bank_transfer",
"bank_code": "341",
"bank_agency": "1234",
"bank_account": "56789-0",
"pix_key": "contato@minhaempresa.example",
"logo_url": "https://cdn.example.com/vendor/logo.png",
"description": "Cafeteiras e acessórios.",
"terms_accepted": true,
"products_require_approval": false,
"email_new_order": true,
"email_order_status": true,
"email_low_stock": true,
"email_payout": true,
"is_on_vacation": false,
"debt_balance": 0,
"created_at": "2026-09-01T12:00:00Z",
"updated_at": "2026-10-11T18:20:00Z"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação). | {"error":"vendor_pending_review","message":"..."} |
| 403 | O usuário da equipe do seller não tem nenhum dos privilégios de configuração (por exemplo vendor_settings). | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_settings", "..."]} |
| 400 | Corpo que não é JSON; slug ou CNPJ inválido; regime tributário inválido. | {"error":"slug_invalid","detail":"slug_invalid: length must be 2-100 characters"} / {"error":"slug_reserved"} / {"error":"vendor_cnpj_invalid"} / {"error":"vendor_tax_regime_invalid"} |
| 403 | Sessão de administrador em modo "entrar como seller" tentou mudar e-mail, senha ou dados de repasse. | {"error":"impersonation_blocked_field", ...} |
| 403 | O usuário não está ligado a nenhum seller. | {"error":"vendor_profile_required"} |
| 409 | Slug ou CNPJ já em uso por outro seller (seller excluído também conta). | {"error":"slug_taken","detail":"..."} / {"error":"vendor_cnpj_in_use"} |
| 500 | Outras falhas de gravação (por exemplo, CNAE não aceito pela loja volta como erro genérico). | {"error":"failed to update vendor profile","detail":"..."} |
Prazo de postagem
Informa em quantos dias o seller despacha um pedido depois de aprovado. A plataforma usa esse prazo para estimar a data de entrega mostrada ao comprador. O padrão de um seller novo é 2 dias.
/api/v1/vendor/settings/handling-timeSellerPrazo de postagem em dias
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
handling_time_daysintegerobrigatório0. Não há teto.Exemplo de requisição
curl -X PUT "$BASE_URL/api/v1/vendor/settings/handling-time" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"handling_time_days": 3
}'Resposta
{
"handling_time_days": 3
}Campos da resposta
handling_time_daysintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} / {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | O cadastro do seller ainda está em análise (só a tela de cadastro funciona até a aprovação). | {"error":"vendor_pending_review","message":"..."} |
| 403 | O usuário tem papel de seller, mas não está ligado a nenhum seller. | {"error":"no vendor account associated with this user"} |
| 400 | Corpo que não é JSON ou handling_time_days que não é inteiro. | {"error":"invalid request body","detail":"..."} |
| 500 | Falha ao gravar. | {"error":"failed to update handling time"} |