Skip to content

Fluxo de Compra e Renovação

Esta página explica o pipeline completo de compra -- da cotação ao entitlement -- e como funcionam as renovações, renovações automáticas e recuperação de pagamento.

O pipeline de compra

Passo a passo

1. Criação da cotação

Cotações originam-se de duas fontes:

  • HubSpot CRM -- A equipe de vendas cria uma cotação no HubSpot. Um webhook a envia para o MIDDAG Account, que cria um registro local com itens, preços e datas de validade.
  • Painel admin -- O admin cria uma cotação diretamente no admin do WordPress, selecionando a Organização, a entidade de faturamento (BR ou US), itens e condições.

Cotações iniciam no status draft. Quando enviadas ao cliente, transicionam para sent.

2. Análise pelo cliente

O cliente vê as cotações pendentes no portal. Abrir uma cotação transiciona o status de sent para viewed (com timestamp registrado). O cliente pode:

  • Analisar itens e preços
  • Adicionar comentários para negociação
  • Aceitar a cotação (irreversível)
  • Rejeitar a cotação (requer um motivo)

Cotações possuem um período de validade configurável (padrão: 30 dias). Cotações expiradas não podem ser aceitas, mas podem ser reenviadas pelo admin com novas datas de validade.

3. Aceitação e criação do pedido

Quando o cliente aceita uma cotação:

  1. O status da cotação transiciona para accepted.
  2. O sistema cria automaticamente um pedido WooCommerce a partir dos itens da cotação.
  3. O pedido é vinculado à cotação via metadados.
  4. O status é sincronizado de volta ao HubSpot.
  5. O cliente é direcionado à etapa de pagamento.

4. Pagamento

Os métodos de pagamento dependem da entidade de faturamento:

EntidadeMétodos disponíveis
MIDDAG BRCartão de crédito (Stripe), Pix, Boleto (Banco Inter)
MIDDAG GLOBALCartão de crédito (Stripe)

O cliente seleciona um método de pagamento no portal:

  • Pix: QR code gerado, pagamento confirmado via webhook do Banco Inter (timeout de 30 minutos).
  • Boleto: Gerado com data de vencimento, pagamento confirmado via webhook do Banco Inter.
  • Cartão de crédito: Formulário Stripe Elements, pagamento confirmado via webhook do Stripe.

5. Provisionamento do entitlement

Quando o pagamento é confirmado:

  1. O status do pedido WooCommerce é atualizado para paid.
  2. A cotação transiciona para paid.
  3. O sistema analisa os itens do pedido para determinar a Entitlement Class (PLG, ENV, SVC, ORD, EDU).
  4. Um entitlement é criado automaticamente com um código único.
  5. Os recursos downstream são provisionados com base na classe.
  6. A cotação transiciona para fulfilled.
  7. O cliente é notificado com o código do entitlement.

Veja Ativação de Entitlement para detalhes sobre o que acontece após a criação do entitlement.

6. Efeitos em cascata

A confirmação do pagamento aciona ações downstream adicionais:

  • Fatura -- O Stripe gera uma fatura, sincronizada via webhook.
  • NFSe -- Para transações BR, uma nota fiscal é emitida automaticamente via ISSNet (veja Faturamento e Finanças).
  • HubSpot -- O status da negociação/cotação é atualizado no portal de origem.
  • Jira -- Se configurado, um issue do Jira é criado para o cumprimento do pedido.

Fluxo de renovação

Renovação automática

Para entitlements baseados em assinatura, a renovação é gerenciada pelo WooCommerce Subscriptions e Stripe:

  1. A política de renovação determina quando tentar a renovação (padrão: 7 dias antes da expiração).
  2. O sistema cobra o método de pagamento armazenado via Stripe.
  3. Em caso de sucesso, a data de término do entitlement é estendida e permanece active.
  4. O cliente é notificado sobre a renovação bem-sucedida.

Renovação manual

Para entitlements não baseados em assinatura ou quando a renovação automática está desabilitada:

  1. O sistema envia lembretes de renovação em intervalos configuráveis (padrão: 30, 7 e 1 dia antes da expiração).
  2. O cliente pode iniciar a renovação pelo portal, o que inicia um novo fluxo de pagamento.
  3. Após o pagamento, o entitlement é renovado com datas atualizadas.

Período de carência

Quando um entitlement expira sem renovação:

  1. O entitlement transiciona para expired.
  2. Um período de carência configurável começa (governado pela RenewalPolicy).
  3. Durante o período de carência, o cliente ainda pode renovar.
  4. Se o período de carência terminar sem renovação, o sistema transiciona o entitlement em direção ao cancelamento (veja Suspensão e Recuperação).

Recuperação de pagamento

Quando um pagamento de renovação falha:

  1. O sistema faz novas tentativas conforme o cronograma de tentativas do Stripe.
  2. Se as tentativas se esgotarem, a PaymentRecoveryPolicy determina o que acontece em seguida.
  3. Por padrão, o entitlement é suspenso após o esgotamento das tentativas.
  4. O cliente é notificado em cada etapa.
  5. Se o pagamento for recuperado, o entitlement retorna a active automaticamente.

Veja Suspensão e Recuperação para a linha do tempo completa de suspensão e escalação.

Páginas relacionadas