Visão Geral
O sistema de assinaturas é composto por três entidades principais:- Customers: Clientes cadastrados que podem assinar planos
- Subscription Plans: Planos de assinatura com preço, moeda e recorrência definidos
- Subscriptions: Assinaturas ativas vinculando um cliente a um plano
Fluxo Completo
O fluxo recomendado é:Duas Formas de Criar Assinatura
- Fluxo Recomendado (Cards-First): Crie o customer, registre o cartão, ative (se necessário), depois crie a subscription usando
cardTokenId - Fluxo Inline: Passe os dados do cartão diretamente no
paymentMethodao criar a subscription
Gerenciamento de Customers
Customers são os clientes que podem assinar seus planos. Você pode criar customers previamente ou deixar que sejam criados automaticamente durante o checkout da assinatura.Criar Customer
Campos do Customer
Buscar e Listar Customers
Planos de Assinatura
Os planos definem o valor, moeda e frequência das cobranças.Criar Plano
Tipos de Recorrência
Para recorrência customizada, informe o campo
recurrenceInterval (em dias):
Status do Plano
Desativar um plano NÃO afeta assinaturas já existentes. Apenas impede novas assinaturas naquele plano.
Desativar Plano com Assinaturas Ativas
Se o plano tiver assinaturas ativas, será necessário confirmar a desativação:Registrar Cartão (Cards-First)
O fluxo recomendado é registrar o cartão antes de criar a assinatura, usando a API de Cards.Registrar o Cartão
Ativar o Cartão
Se o cartão foi registrado comvalidateCard: true, você precisa ativá-lo antes de usar em assinaturas:
Para mais detalhes sobre a API de Cards, consulte a referência da API de Cards.
Criar Assinatura (Checkout)
Para criar uma assinatura, você precisa de um plano ativo e um cartão de pagamento. Existem duas formas de fornecer o cartão:- Usar
cardTokenId(recomendado): Use um cartão já registrado e ativado - Usar
paymentMethod: Passe os dados do cartão inline (cria um novo cartão)
- Passar
customerId: Reutiliza um customer já cadastrado - Passar objeto
customer: Cria um novo customer ou localiza pelo email
Validação de Cartão (validateCard)
Por padrão, o cartão é validado antes de ativar a assinatura (validateCard: true). Isso significa:
- Uma transação de teste de até R$ 2,00 é feita no cartão
- A assinatura é criada com status
pending_card_activation - O cliente deve verificar o valor na fatura do cartão
- O endpoint
/cards/{cardTokenId}/activatedeve ser chamado com o valor - Após a ativação, o valor de teste é estornado automaticamente e a primeira cobrança da assinatura é processada
validateCard: false, o cartão não é validado e a primeira cobrança é processada imediatamente.
Opção 1: Usando cardTokenId (Recomendado - Cards-First)
Use um cartão já registrado e ativado:Opção 2: Usando paymentMethod (cartão novo inline)
Opção 3: Usando objeto customer (novo cliente ou busca por email)
Você deve informar
customerId OU customer, não ambos. Se usar customer, o sistema irá buscar um cliente existente pelo email ou criar um novo.Dia de Cobrança (billingDay)
O campobillingDay define em qual dia do mês a cobrança será realizada (1-28). Se não informado, usa o dia atual.
O que acontece no checkout
ComvalidateCard: true (padrão):
- O plano de assinatura é validado
- O customer é criado ou localizado pelo email
- O cartão é registrado no token vault
- Uma transação de teste (até R$ 2,00) é feita no cartão
- A assinatura é criada com status
pending_card_activation - O cliente deve ativar o cartão usando o endpoint
/cards/{cardTokenId}/activate - Após ativação, a primeira cobrança é processada automaticamente
validateCard: false:
- O plano de assinatura é validado
- O customer é criado ou localizado pelo email
- O cartão é registrado no token vault
- A primeira cobrança é efetuada imediatamente
- A assinatura é armazenada com status
active(se cobrança bem-sucedida)
Ativar Cartão da Assinatura
Quando a assinatura é criada comvalidateCard: true, o cartão precisa ser ativado antes de processar a primeira cobrança.
Como funciona
- O cliente verifica a fatura do cartão e localiza a transação de teste (até R$ 2,00)
- O valor exato da transação é informado no endpoint de ativação de cartões
- Após confirmação, o cartão é ativado, o valor de teste é estornado
- Todas as assinaturas pendentes usando esse cartão têm a primeira cobrança processada automaticamente
Endpoint de Ativação
Use o endpoint de ativação de cartões (/cards/{id}/activate):
Ciclo de Vida da Assinatura
Status da Assinatura
Atualizar Assinatura
Você pode atualizar dados de uma assinatura ativa:Cancelamento
O cancelamento possui lógica de período de arrependimento conforme legislação brasileira.Período de Arrependimento (até 7 dias)
Se o cancelamento ocorrer em até 7 dias após a criação:- Estorno total e automático do valor pago
- Acesso revogado imediatamente
cancellationType:regretrefunded:true
Cancelamento Regular (após 7 dias)
Se o cancelamento ocorrer após 7 dias:- Sem estorno automático
- Acesso continua até o fim do período atual
- Não serão geradas novas cobranças
cancellationType:regularrefunded:false
Histórico de Cobranças
Ao buscar uma assinatura por ID, você recebe o histórico completo de cobranças:Status das Cobranças
Boas Práticas
1. Validar o Plano Antes do Checkout
Antes de direcionar o usuário para o checkout, verifique se o plano está ativo:2. Tratar Falhas na Cobrança Inicial
Se a cobrança inicial falhar, a assinatura terá statuspending_activation. Implemente um fluxo para que o usuário tente novamente com outro cartão.
3. Informar o Cliente sobre Renovação
Envie lembretes ao cliente alguns dias antes da renovação automática.4. Manter Dados de Pagamento Atualizados
Se o cartão do cliente expirar, a cobrança falhará. Implemente um fluxo para atualização de dados de pagamento.5. Usar Metadata para Informações Adicionais
O campometadata permite armazenar informações customizadas na assinatura:
Webhooks de Assinatura
A FastPay envia webhooks automáticos para eventos importantes no ciclo de vida das assinaturas:
Para mais detalhes sobre configuração e payloads, consulte a documentação de Webhooks de Assinatura.
Próximos Passos
- Referência da API - Documentação completa dos endpoints
- Webhooks de Assinatura - Receba notificações sobre eventos de assinatura
- Autenticação - Detalhes sobre autenticação na API