Configuracao de Recarga Automatica
A recarga automatica reabastece automaticamente o saldo de carteira dos clientes quando cai abaixo de um limite configuravel. Isso garante que os clientes sempre possam iniciar e concluir viagens sem adicionar saldo manualmente.
Visao Geral
Quando ativado, o sistema monitora o saldo da carteira e cobra automaticamente o metodo de pagamento armazenado do cliente quando o saldo fica muito baixo. Isso cria uma experiencia de viagem sem interrupcoes onde os clientes nao precisam se preocupar em ficar sem saldo no meio de uma viagem.
Principais Recursos
- Cobranca automatica - Cobra o metodo de pagamento armazenado quando o saldo esta baixo
- Limite configuravel - Defina o ponto de acionamento para recargas automaticas
- Valor configuravel - Defina quanto e adicionado a cada vez
- Consentimento duplo obrigatorio - Tanto o operador quanto o cliente devem ativar
- Integracao Stripe - Pagamentos seguros off-session via Stripe
- Protecao contra concorrencia - Bloqueios de banco de dados impedem cobrancas duplicadas
Como Funciona
Saldo da carteira: R$ 4,50
Limite: R$ 5,00
Valor de recarga: R$ 15,00
1. Cliente inicia viagem
2. Sistema verifica: R$ 4,50 ≤ limite de R$ 5,00
3. Recarga automatica acionada
4. Stripe cobra R$ 15,00 no cartao padrao
5. Novo saldo: R$ 19,50
6. Viagem continua normalmente
Requisitos
A recarga automatica requer TODOS os seguintes:
| Requisito | Quem define | Onde |
|---|---|---|
| Subconta ativada | Operador de frota | Configuracoes do Dashboard |
| Cliente ativou | Cliente | Carteira do App Movel |
| Metodo de pagamento armazenado | Cliente | App Movel |
| ID de cliente Stripe | Automatico | Criado no primeiro pagamento |
Ambos devem ativar
A recarga automatica so funciona se TANTO a subconta QUANTO o cliente a tiverem ativada. Se qualquer um desativar, a cobranca automatica para.
Configuracao do Operador
Ativar Recarga Automatica
Navegar ate Configuracoes
Va para Dashboard -> Configuracoes.
Encontrar secao de Pagamentos
Role ate a secao Pagamentos.
Ativar Recarga Automatica
Ative Recarga Automatica Ativada.
Definir Limite
Insira o Nivel de acionamento (quando cobrar). Padrao: R$ 5,00
Definir Valor
Insira o Valor de recarga (quanto adicionar). Padrao: R$ 15,00
Salvar Configuracoes
Clique em Salvar para aplicar as alteracoes.
Opcoes de Configuracao
Nivel de Acionamento (Limite)
O saldo de carteira no qual a recarga automatica e ativada.
| Configuracao | Comportamento |
|---|---|
| R$ 5,00 (Padrao) | Cobra quando saldo ≤ R$ 5,00 |
| R$ 10,00 | Cobra quando saldo ≤ R$ 10,00 |
| R$ 2,00 | Cobra quando saldo ≤ R$ 2,00 |
Recomendacoes:
- Defina o limite ligeiramente acima do custo medio de viagem
- Considere taxa de desbloqueio + duracao tipica de viagem
- Limites mais altos = cobrancas pequenas mais frequentes
Valor de Recarga
Quanto e adicionado a carteira cada vez.
| Configuracao | Comportamento |
|---|---|
| R$ 15,00 (Padrao) | Adiciona R$ 15,00 por cobranca |
| R$ 10,00 | Adiciona R$ 10,00 por cobranca |
| R$ 25,00 | Adiciona R$ 25,00 por cobranca |
Recomendacoes:
- Deve cobrir 2-4 viagens tipicas
- Equilibre conveniencia e taxas de transacao
- Valores maiores = menos transacoes
Melhores Praticas
- Defina limite acima do custo da viagem - Garanta que os clientes possam completar pelo menos uma viagem
- Equilibre valor vs. frequencia - Valores maiores significam menos taxas Stripe
- Comunique aos clientes - Garanta que os clientes saibam que a recarga automatica esta disponivel
- Monitore cobrancas recusadas - Verifique regularmente recargas automaticas falhadas
Experiencia do Cliente
Ativar Recarga Automatica
Clientes ativam a recarga automatica no app movel:
- Abrir tela de Carteira
- Tocar no botao de Recarga Automatica
- Confirmar ativacao
- Garantir que um metodo de pagamento padrao esteja salvo
O Que os Clientes Veem
- Botao para ativar/desativar recarga automatica
- Notificacao quando cobrancas de recarga automatica ocorrem
- Historico de transacoes mostra entradas de "Recarga Automatica"
- Saldo atual da carteira sempre visivel
Metodo de pagamento armazenado obrigatorio
Os clientes devem ter um metodo de pagamento armazenado definido como padrao para que a recarga automatica funcione. O sistema usa a capacidade de pagamento off-session do Stripe.
Quando a Recarga Automatica Aciona
A recarga automatica e verificada nestes momentos:
| Evento | Condicao de Acionamento |
|---|---|
| Inicio da viagem | Saldo ≤ Limite |
| Fim da viagem | Saldo insuficiente para custo da viagem |
| Verificacao de carteira | Verificacao periodica de saldo |
Fluxo de Inicio de Viagem
1. Cliente toca em "Desbloquear" no veiculo
2. Sistema verifica saldo da carteira
3. Se saldo ≤ limite E recarga automatica ativada:
a. Bloqueio adquirido para evitar cobrancas duplicadas
b. PaymentIntent Stripe criado
c. Metodo de pagamento padrao cobrado
d. Saldo da carteira atualizado
e. Bloqueio liberado
4. Viagem inicia normalmente
Fluxo de Fim de Viagem
1. Viagem termina, custo calculado: R$ 8,50
2. Carteira atual: R$ 4,00
3. Carteira insuficiente, recarga automatica acionada
4. R$ 15,00 adicionados -> Novo saldo: R$ 19,00
5. Custo da viagem deduzido: R$ 19,00 - R$ 8,50 = R$ 10,50
6. Cliente ve saldo final: R$ 10,50
Detalhes Tecnicos
Campos do Banco de Dados
Tabela Subaccounts:
| Coluna | Tipo | Descricao |
|---|---|---|
auto_topup_enabled | Boolean | Subconta tem recarga automatica ativada |
auto_topup_threshold_cents | Integer | Nivel de acionamento em centavos |
auto_topup_amount_cents | Integer | Valor a adicionar em centavos |
Tabela Customers:
| Coluna | Tipo | Descricao |
|---|---|---|
auto_topup_enabled | Boolean | Cliente concordou |
stripe_customer_id | String | Referencia de cliente Stripe |
auto_topup_lock_expires_at | Timestamp | Impede cobrancas simultaneas |
Protecao contra Concorrencia
O sistema usa bloqueios de banco de dados para evitar cobrar clientes multiplas vezes:
- Antes de cobrar, adquirir bloqueio via RPC
acquire_auto_topup_lock - Bloqueio tem TTL de 2 minutos (expira automaticamente se o processo falhar)
- Se bloqueio ja estiver retido, aguardar e verificar se o saldo aumentou
- Apos cobranca, liberar bloqueio via RPC
release_auto_topup_lock - Chave de idempotencia impede cobrancas duplicadas no Stripe
Tratamento de Erros
| Erro | Resposta do Sistema |
|---|---|
| Cartao recusado | Retornar erro, cliente notificado |
| Sem metodo de pagamento | Retornar "Nenhum metodo de pagamento registrado" |
| Autenticacao necessaria | Retornar erro, requer acao do cliente |
| Bloqueio ja retido | Aguardar conclusao da cobranca existente |
Solucao de Problemas
Recarga Automatica Nao Funciona
- Verificar configuracao da subconta - Verificar se
auto_topup_enabledesta true nas configuracoes - Verificar configuracao do cliente - Verificar se cliente ativou no app
- Verificar metodo de pagamento - Cliente precisa de cartao padrao armazenado
- Verificar cliente Stripe - Cliente precisa de
stripe_customer_id - Verificar saldo - Pode ja estar acima do limite
Cobrancas Duplicadas
O sistema impede duplicatas atraves de:
- Bloqueio de banco de dados no registro do cliente
- Chave de idempotencia do Stripe
- Re-verificacao de saldo apos aquisicao do bloqueio
Se duplicatas ocorrerem, verificar:
- Falhas na liberacao de bloqueio nos logs
- Processamento de webhook do Stripe
- Problemas de conexao com banco de dados
Cobrancas Falhadas
Razoes comuns para falha na recarga automatica:
| Razao | Solucao |
|---|---|
| Cartao expirado | Cliente atualiza cartao no app |
| Saldo insuficiente | Cliente usa outro cartao |
| Cartao reportado como roubado | Cliente adiciona novo cartao |
| Recusa do banco | Cliente contata o banco |
| 3D Secure necessario | Cliente adiciona saldo manualmente |
Limitacao do 3D Secure
A recarga automatica usa pagamentos off-session, que nao podem lidar com desafios 3D Secure. Se o cartao do cliente requer autenticacao, ele precisa adicionar saldo manualmente.
Modo de Teste
Para testes internos, o sistema usa automaticamente o modo de teste Stripe para enderecos de e-mail @levyelectric.com. Isso permite testar fluxos de recarga automatica sem cobrancas reais.
E-mail do cliente: test@levyelectric.com
-> Usa STRIPE_TEST_SECRET_KEY
-> Cartoes de teste funcionam (4242 4242 4242 4242)
-> Nenhuma cobranca real processada
Referencia da API
Verificar Capacidade de Recarga Automatica
import { canProcessAutoTopup } from '@/lib/auto-topup'
const canTopup = await canProcessAutoTopup(customerId, vehicleId)
// Retorna: boolean
Processar Recarga Automatica
import { processAutoTopup } from '@/lib/auto-topup'
const result = await processAutoTopup(customerId, vehicleId, skipThresholdCheck)
// Retorna: { success, amountCents, error?, newWalletBalance? }
Alternar Preferencia do Cliente (API Mobile)
POST /api/mobile/payment
{
"action": "toggle-auto-topup",
"enabled": true
}
Experiencia Sem Interrupcoes
Com a recarga automatica configurada, seus clientes desfrutam de viagens ininterruptas sem se preocupar com o saldo da carteira. O sistema lida com o reabastecimento automaticamente, reduzindo a friccao e aumentando as taxas de conclusao de viagens.