Plano do seller
Consulta o plano atual do seller com seu uso e troca de plano respeitando os limites.
Consultar o plano atual
Devolve o plano do seller e o quanto dos limites ele já usa. Exige o módulo vendor-plans ligado.
/api/v1/vendor/planSellerConsultar o plano atual
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Exemplo de requisição
bash
curl -X GET "$BASE_URL/api/v1/vendor/plan" \
-H "Authorization: Bearer $TOKEN"Resposta
200Plano e uso
json
{
"plan": {
"id": 8,
"status": "A",
"position": 0,
"is_default": false,
"price_cents": 0,
"periodicity": "month",
"commission_bps": 700,
"fixed_commission_cents": 0,
"products_limit": 6000,
"revenue_limit_cents": 0,
"vendor_store": false,
"categories": "",
"include_shipping": false,
"include_taxes": false,
"price_on_request": false,
"ministore_enabled": false,
"ministore_whatsapp_payment": false,
"ministore_pix_auto": false,
"ministore_search_text": false,
"ministore_search_audio": false,
"ministore_search_image": false,
"ministore_search_list_ai": false,
"ministore_dashboard_simple": false,
"ministore_dashboard_metrics": false,
"ministore_dashboard_custom": false,
"ministore_cart_recovery": false,
"ministore_crm": false,
"ministore_human_transfer": false,
"ministore_integrations": false,
"ministore_orders_included": 0,
"ministore_excess_per_order_cents": 0,
"ministore_excess_percentage_bps": 0,
"created_at": "2026-07-11T19:45:31.455028Z",
"updated_at": "2026-09-10T13:29:00.462474Z",
"descriptions": [
{
"plan_id": 8,
"lang_code": "pt-BR",
"name": "Plano Pro",
"description": "Até 6.000 produtos"
}
],
"vendors_count": 1
},
"product_count": 4987,
"revenue_cents": 2737616362
}Campos da resposta
planobject|nullO plano. null se o seller não tem plano.
idintegerId do plano (inteiro, não UUID).
statusstringAHDA ativo, H oculto, D desativado.positionintegerOrdem de exibição.
is_defaultbooleanPlano padrão para novos sellers.
price_centsintegerPreço por período, em centavos.
periodicitystringmonthyearonetimePeríodo da cobrança.
commission_bpsintegerComissão percentual em pontos-base (
700 = 7%).fixed_commission_centsintegerComissão fixa por pedido, em centavos.
products_limitintegerMáximo de produtos.
0 = sem limite.revenue_limit_centsintegerTeto de receita acumulada, em centavos.
0 = sem limite.vendor_storebooleanSe o plano dá página de loja própria.
categoriesstringCategorias permitidas, ids separados por vírgula. Vazio = todas.
include_shippingbooleanFrete entra na base da comissão.
include_taxesbooleanImpostos entram na base da comissão.
price_on_requestbooleanPreço sob consulta (esconde
price_cents).ministore_*mixedRecursos da mini-loja do plano. Booleanos:
ministore_enabled, ministore_whatsapp_payment, ministore_pix_auto, ministore_search_text, ministore_search_audio, ministore_search_image, ministore_search_list_ai, ministore_dashboard_simple, ministore_dashboard_metrics, ministore_dashboard_custom, ministore_cart_recovery, ministore_crm, ministore_human_transfer, ministore_integrations. Números: ministore_orders_included (0 = sem limite), ministore_excess_per_order_cents e ministore_excess_percentage_bps (cobrança sobre pedidos acima do incluído).descriptionsobject[]Nome e descrição por idioma:
plan_id, lang_code, name, description. Pode vir null.vendors_countintegerQuantos sellers estão neste plano.
created_atstringCriação, RFC 3339 em UTC.
updated_atstringÚltima alteração, RFC 3339 em UTC.
product_countintegerProdutos do seller que não foram apagados.
revenue_centsintegerReceita acumulada de todos os pedidos, exceto cancelados, reembolsados, recusados e estornados, em centavos. É o número comparado com
revenue_limit_cents.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 404 | O usuário não está vinculado a nenhum seller. | {"error":"vendor not found"} |
| 403 | O módulo vendor-plans está desligado nesta loja. | {"error":"module_disabled","module":"vendor-plans"} |
| 401 | Token ausente, inválido, expirado ou revogado. | invalid or expired token |
| 403 | O token não é de um usuário seller, ou a loja ainda está em análise de cadastro. | {"error":"vendor_pending_review"} |
Trocar de plano
Troca o plano do seller imediatamente, se ele cumpre os limites do plano novo. Planos desativados (D) não podem ser escolhidos; os ocultos (H) podem.
/api/v1/vendor/planSellerTrocar de plano
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Content-Typestringobrigatórioapplication/json.Corpo da requisição
plan_idintegerobrigatórioId do plano de destino (inteiro).
Exemplo de requisição
bash
curl -X PUT "$BASE_URL/api/v1/vendor/plan" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"plan_id": 8}'Resposta
200Plano trocado
json
{
"plan_id": 8,
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"current_products": 4987,
"products_limit": 6000,
"products_ok": true,
"current_revenue_cents": 2737616362,
"revenue_limit_cents": 0,
"revenue_ok": true,
"available": true
}409Limites excedidos, nada mudou
json
{
"plan_id": 3,
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"current_products": 4987,
"products_limit": 1000,
"products_ok": false,
"current_revenue_cents": 2737616362,
"revenue_limit_cents": 0,
"revenue_ok": true,
"available": false,
"errors": [
"vendor has 4987 products but plan allows 1000"
]
}Campos da resposta
plan_idintegerPlano avaliado.
vendor_iduuidSeller.
current_productsintegerProdutos atuais do seller.
products_limitintegerLimite de produtos do plano (
0 = sem limite).products_okbooleanSe o limite de produtos é cumprido.
current_revenue_centsintegerReceita acumulada atual, em centavos.
revenue_limit_centsintegerLimite de receita do plano (
0 = sem limite).revenue_okbooleanSe o limite de receita é cumprido.
availablebooleantrue se a troca foi feita. No 409 vem false.errorsstring[]Só quando algo excede: explica o quê, em inglês.
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo que não é JSON, plan_id ausente ou menor que 1, plano inexistente ou desativado. | {"error":"plan_id is required"} |
| 409 | O seller excede os limites do plano de destino. | {"plan_id":3,"available":false,"errors":["..."]} |
| 404 | O usuário não está vinculado a nenhum seller. | {"error":"vendor not found"} |
| 403 | O módulo vendor-plans está desligado nesta loja. | {"error":"module_disabled","module":"vendor-plans"} |
| 401 | Token ausente, inválido, expirado ou revogado. | invalid or expired token |
| 403 | O token não é de um usuário seller, ou a loja ainda está em análise de cadastro. | {"error":"vendor_pending_review"} |