A cobrança baseada em assentos permite cobrar os clientes com base no número de usuários, membros da equipe ou licenças de que precisam. É o modelo padrão de precificação para ferramentas de colaboração em equipe, software empresarial e produtos SaaS B2B.
Implementation Tutorial
Guia passo a passo com exemplos de código.
Add-ons Documentation
Saiba mais sobre o sistema de complementos que alimenta a cobrança baseada em assentos.
Subscription Management
Gerencie assinaturas baseadas em assentos e mudanças de plano.
Webhooks
Acompanhe alterações de assentos com webhooks de assinatura.
O que é Cobrança Baseada em Assentos?
A cobrança baseada em assentos (também chamada de preços por usuário ou por assento) cobra dos clientes com base no número de usuários que acessam seu produto. Em vez de uma taxa fixa, o preço escala com o tamanho da equipe.Casos de Uso Comuns
| Indústria | Exemplo | Modelo de Preço |
|---|---|---|
| Colaboração em Equipe | Slack, Notion, Asana | Por usuário ativo/mês |
| Ferramentas para Desenvolvedores | GitHub, GitLab, Jira | Por assento/mês |
| Software de CRM | Salesforce, HubSpot | Por licença de usuário |
| Ferramentas de Design | Figma, Canva | Por assento de editor |
| Software de Segurança | 1Password, Okta | Por usuário/mês |
| Videoconferência | Zoom, Teams | Por licença de anfitrião |
Benefícios da Cobrança Baseada em Assentos
Para o Seu Negócio:- A receita escala naturalmente à medida que os clientes crescem
- Preços previsíveis que os clientes podem orçar
- Caminho claro de upgrade de individual para equipe para empresarial
- Maior valor vitalício à medida que as equipes se expandem
- Pague apenas pelo que usam
- Fácil de entender e prever custos
- Flexibilidade para adicionar/remover usuários conforme necessário
- Preços justos que correspondem ao tamanho da equipe
Como a Cobrança Baseada em Assentos Funciona no Dodo Payments
O Dodo Payments implementa a cobrança baseada em assentos usando o sistema de Add-ons. Veja como funciona:Visão Geral da Arquitetura
Uma assinatura Team Pro custa 15/mês adicionais por cada assento extra. Por exemplo, se sua equipe precisar de 15 assentos:- Plano base: $99/mês (inclui 5 assentos)
- Complementos: 10 assentos extras × 150/mês
- Custo mensal total: 150 = $249 por 15 assentos
Componentes Chave
| Componente | Propósito | Exemplo |
|---|---|---|
| Produto Base | Assinatura principal com assentos incluídos | ”Plano de Equipe - $99/mês (5 assentos incluídos)“ |
| Add-on de Assento | Cobrança por assento para usuários adicionais | ”Assento Extra - $15/mês cada” |
| Quantidade | Número de assentos adicionais adquiridos | 10 assentos extras |
Estratégias de Preço
Escolha a estratégia de preço baseada em assentos que se encaixa no seu negócio:Estratégia 1: Base + Add-on por Assento
Inclua um número definido de assentos no plano base, cobrando por assentos adicionais. Exemplo:Estratégia 2: Preço Puro por Assento
Cobre uma taxa fixa por assento sem taxa base. Exemplo:Estratégia 3: Preço por Assento em Camadas
Diferentes planos base com diferentes taxas por assento. Exemplo:Estratégia 4: Pacotes de Assentos
Venda assentos em pacotes em vez de individualmente. Exemplo:Configurando a Cobrança Baseada em Assentos
Passo 1: Planeje Sua Estrutura de Preços
Antes da implementação, defina sua estrutura de preços:Define Base Plan
Decida o que está incluído na assinatura base:
- Preço base (pode ser $0 para um modelo puramente por assento)
- Número de assentos incluídos
- Recursos disponíveis nesse nível
Set Seat Pricing
Determine o custo do complemento por assento:
- Preço por assento adicional
- Quaisquer descontos por volume (por meio de vários complementos)
- Máximo de assentos permitidos (se aplicável)
Passo 2: Crie o Add-on de Assento
No seu painel do Dodo Payments:- Navegue até Produtos → Add-Ons
- Clique em Criar Add-On
- Configure o add-on:
| Campo | Valor | Notas |
|---|---|---|
| Nome | ”Assento Adicional” ou “Membro da Equipe” | Nome claro e amigável ao usuário |
| Descrição | ”Adicione outro membro da equipe ao seu espaço de trabalho” | Explique o que os clientes recebem |
| Preço | Seu preço por assento | ex: $10.00 |
| Moeda | Combine com seu produto base | Deve ser a mesma moeda |
| Categoria de Imposto | A mesma do produto base | Garante tratamento fiscal consistente |
Passo 3: Crie o Produto de Assinatura
Crie seu produto de assinatura:- Navegue até Produtos → Criar Produto
- Selecione Assinatura
- Configure preços e detalhes
- Na seção Add-Ons, anexe seu add-on de assento
Passo 4: Anexe o Add-on ao Produto
Vincule o add-on de assento à sua assinatura:- Edite seu produto de assinatura
- Role até a seção Add-Ons
- Clique em Adicionar Add-Ons
- Selecione seu add-on de assento
- Salve as alterações
Seu produto de assinatura agora oferece suporte a preços baseados em assentos. Os clientes podem comprar qualquer quantidade de assentos adicionais durante o checkout.
Gerenciando Assentos
Adicionando Assentos a Novas Assinaturas
Ao criar uma sessão de checkout, especifique a quantidade de assentos:Alterando a Contagem de Assentos em Assinaturas Existentes
Use a API de Alteração de Plano para ajustar os assentos:Removendo Assentos
Para reduzir a contagem de assentos, especifique a quantidade menor:Removendo Todos os Assentos Adicionais
Passe um array de add-ons vazio para remover todos os add-ons:Prorrata para Mudanças de Assentos
Quando os clientes adicionam ou removem assentos no meio do ciclo, a prorrata determina como eles são cobrados.Modos de prorrata
| Modo | Adicionar assentos | Remover assentos |
|---|---|---|
prorated_immediately | Cobrar pelos dias restantes no ciclo | Crédito pelos dias não usados |
difference_immediately | Cobrar o preço total do assento | Crédito aplicado a renovações futuras |
full_immediately | Cobrar o preço total do assento, reiniciar o ciclo de cobrança | Sem crédito |
Exemplos de prorrata
Cenário: ciclo de cobrança de 15 dias restantes, adicionando 5 assentos a $10/assento- prorated_immediately
- difference_immediately
- full_immediately
Visualização antes de alterar
Sempre visualize a prorrata antes de fazer alterações:Acompanhando assentos com webhooks
Monitore alterações de assentos ouvindo webhooks de assinatura:Eventos relevantes
| Evento | Quando é acionado | Caso de uso |
|---|---|---|
subscription.active | Nova assinatura ativada | Provisionar assentos iniciais |
subscription.plan_changed | Assentos adicionados/removidos | Atualizar contagem de assentos no seu app |
subscription.renewed | Assinatura renovada | Confirmar que a contagem de assentos permaneceu a mesma |
subscription.cancelled | Assinatura cancelada | Desprovisionar todos os assentos |
Exemplo de manipulador de webhook
Aplicando limites de assentos
Seu aplicativo deve aplicar limites de assentos. A Dodo Payments acompanha a cobrança, mas você controla o acesso.Estratégias de aplicação
- Hard Limit
- Soft Limit with Warning
- Auto-Upgrade
Impeça estritamente que usuários sejam adicionados além da contagem de assentos.
Padrões avançados
Diferentes tipos de assentos
Descontos anuais para assentos
Ofereça preços anuais de assentos com desconto:Requisitos mínimos de assentos
Exija um número mínimo de assentos para determinados planos:Melhores práticas
Melhores práticas de precificação
- Clear Communication: Mostre o preço por assento de forma destacada na sua página de preços
- Included Seats: Considere incluir alguns assentos no preço base para reduzir atritos
- Volume Discounts: Ofereça taxas por assento mais baixas para equipes maiores e conquiste contratos empresariais
- Annual Incentives: Desconte os planos anuais para melhorar o fluxo de caixa e a retenção
Melhores práticas técnicas
- Cache Seat Counts: Armazene localmente a contagem de assentos da assinatura para evitar chamadas de API a cada requisição
- Sync Regularly: Sincronize periodicamente sua contagem local de assentos com a Dodo Payments via API
- Handle Failures: Se uma alteração de assento falhar, mostre mensagens de erro claras e opções de nova tentativa
- Audit Trail: Registre todas as alterações de assentos para disputas de cobrança e conformidade
Melhores práticas de experiência do usuário
- Real-Time Feedback: Mostre o impacto no custo imediatamente ao ajustar os assentos
- Confirmation Steps: Exija confirmação antes de mudanças de cobrança
- Proration Transparency: Explique claramente as cobranças prorrateadas antes de aplicá-las
- Easy Downgrades: Não torne difícil reduzir assentos (isso gera confiança)
Resolução de problemas
Seat count mismatch between app and billing
Seat count mismatch between app and billing
Sintoma: Seu app mostra uma contagem de assentos diferente da assinatura.Causas:
- Webhook não recebido ou processado
- Condição de corrida durante a alteração de assentos
- Dados em cache não atualizados
- Implemente manipuladores de webhook para
subscription.plan_changed - Adicione um botão “Sincronizar com a cobrança” que busca a assinatura atual
- Defina o TTL do cache para garantir uma atualização regular
Proration charges unexpected
Proration charges unexpected
Sintoma: Cliente confuso com o valor da cobrança no meio do ciclo.Causas:
- Modo de prorrata não comunicado claramente
- Cliente não viu a prévia antes de confirmar
- Sempre use
previewChangePlanantes de fazer alterações - Mostre um detalhamento claro: “Adicionar X assentos = $Y hoje (prorrateado por Z dias)”
- Documente sua política de prorrata no centro de ajuda
Add-on not appearing in checkout
Add-on not appearing in checkout
Sintoma: Complemento de assento não disponível durante o checkout.Causas:
- Complemento não vinculado ao produto
- Complemento arquivado ou excluído
- Incompatibilidade de moeda entre produto e complemento
- Verifique se o complemento está vinculado nas configurações do produto
- Confira o status do complemento no painel de complementos
- Garanta que as moedas correspondam exatamente
Cannot reduce seats below current usage
Cannot reduce seats below current usage
Sintoma: Cliente quer reduzir assentos, mas há usuários atribuídos.Soluções:
- Mostre quais usuários devem ser removidos antes de reduzir os assentos
- Implemente um fluxo: Remover usuários → Reduzir assentos
- Considere um período de carência antes de aplicar a redução de assentos