Planos comerciais
O sistema comercial deve expor um endpoint GET com o catálogo consumido pelo cadastro público e pela sincronização local.
Request
GET {CUSTOM_COMMERCIAL_URL}{CUSTOM_PLANS_ENDPOINT}
Authorization: Bearer SEU_CUSTOM_COMMERCIAL_TOKEN
apiKey: SEU_CUSTOM_COMMERCIAL_TOKEN
Content-Type: application/jsonTimeout: 10 segundos.
Response completa
{
"plans": [{
"id": 2,
"name": "Pro",
"users": 10,
"usersConnected": 10,
"channels": 5,
"campaignMessages": 1000,
"price": "199.90",
"additionalUserPrice": 15,
"additionalChannelPrice": 25,
"additionalSpacePrice": 5,
"trial": 0,
"trialDays": 0,
"recurrence": "MENSAL",
"activeia": true,
"iaPrice": 40,
"activecampaign": true,
"campaignPrice": 30,
"activecampaignwaba": true,
"campaignWabaPrice": 35,
"activecampaignsms": false,
"campaignSmsPrice": 20,
"activetypebot": true,
"typebotPrice": 20,
"activescheduler": true,
"schedulerPrice": 10,
"activekanban": true,
"kanbanPrice": 10,
"activecampaigndigicalls": false,
"campaignDigicallsPrice": 60,
"activeinternalchat": true,
"internalChatPrice": 15,
"valueCredit": 0,
"contractedSpace": 5,
"maxContacts": 10000,
"isHidden": false
}],
"count": 1,
"hasMore": false
}Também são aceitos array direto ou coleção em data. Se count faltar, usa total ou o tamanho do array; hasMore ausente vira false.
Limites e valores base
id
planId, plan_id
string/number
sim
ID estável
name
—
string
sim
Nome único
users
—
number
sim
Usuários incluídos
usersConnected
users_connected
number
sim
Sessões simultâneas
channels
—
number
sim
Canais incluídos
campaignMessages
campaign_messages
number
sim
Franquia de campanha
price
—
string/number
sim
Mensalidade base
trial
—
number
sim
0 ou 1
trialDays
trial_days
number
sim
Dias de trial
recurrence
—
string
sim
Ex.: MENSAL
valueCredit
value_credit
number
sim
Crédito incluído
contractedSpace
contracted_space
number
sim
Espaço base em GB
maxContacts
max_contacts
number/null
recomendado
null = ilimitado
isHidden
is_hidden
boolean
sim
Oculta no cadastro
Preços dos adicionais
additionalUserPrice
additional_user_price
Preço por usuário extra
additionalChannelPrice
additional_channel_price
Preço por canal extra
additionalSpacePrice
additional_space_price
Preço por GB extra
Módulos
activeia
iaPrice
ia_price
activecampaign
campaignPrice
campaign_price
activecampaignwaba
campaignWabaPrice
campaign_waba_price
activecampaignsms
campaignSmsPrice
campaign_sms_price
activetypebot
typebotPrice
typebot_price
activescheduler
schedulerPrice
scheduler_price
activekanban
kanbanPrice
kanban_price
activecampaigndigicalls
campaignDigicallsPrice
campaign_digicalls_price
activeinternalchat
internalChatPrice
internal_chat_price
Aliases adicionais: active_campaign_digicalls, active_internal_chat e useInternalChat.
Flag true inclui o módulo no plano. Se for false, ele pode ser contratado por tenant em additionalModules.
Normalização
Booleanos:
true/false,1/0,yes/no,sim/não.Números: number ou string numérica; inválidos viram
0.maxContacts:nullou string vazia viram ilimitado.Prefira camelCase e tipos JSON nativos.
Envie o contrato completo. Campos ausentes podem virar 0 ou false e sobrescrever o plano local durante a sincronização.
Planos com isHidden: true não aparecem no cadastro, mas continuam sincronizados. Nunca reutilize IDs; Tenant.planId depende deles.