Skip to main content
O sistema de assinaturas recorrentes da FastPay permite que você cobre automaticamente seus clientes em intervalos regulares, ideal para serviços de assinatura, planos mensais, clubes de benefícios e muito mais.

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

  1. Fluxo Recomendado (Cards-First): Crie o customer, registre o cartão, ative (se necessário), depois crie a subscription usando cardTokenId
  2. Fluxo Inline: Passe os dados do cartão diretamente no paymentMethod ao 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

Resposta:

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):
Isso criará um plano com cobrança trimestral (a cada 90 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:
Resposta quando há assinaturas ativas:

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

Resposta (com validateCard=true):

Ativar o Cartão

Se o cartão foi registrado com validateCard: 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:
  1. Usar cardTokenId (recomendado): Use um cartão já registrado e ativado
  2. Usar paymentMethod: Passe os dados do cartão inline (cria um novo cartão)
Existem duas formas de identificar o cliente:
  1. Passar customerId: Reutiliza um customer já cadastrado
  2. 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:
  1. Uma transação de teste de até R$ 2,00 é feita no cartão
  2. A assinatura é criada com status pending_card_activation
  3. O cliente deve verificar o valor na fatura do cartão
  4. O endpoint /cards/{cardTokenId}/activate deve ser chamado com o valor
  5. Após a ativação, o valor de teste é estornado automaticamente e a primeira cobrança da assinatura é processada
Se validateCard: false, o cartão não é validado e a primeira cobrança é processada imediatamente.
Mantenha validateCard: true (padrão) para maior segurança e menor risco de cobranças recusadas.

Opção 1: Usando cardTokenId (Recomendado - Cards-First)

Use um cartão já registrado e ativado:
Resposta:
O cartão deve estar com status active. Se o cartão estiver pending_validation, você receberá erro 400 - Card is pending activation.

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.
Resposta (com validateCard=true):
Resposta (com validateCard=false):

Dia de Cobrança (billingDay)

O campo billingDay define em qual dia do mês a cobrança será realizada (1-28). Se não informado, usa o dia atual.
O limite é 28 para evitar problemas com meses que têm menos de 31 dias.

O que acontece no checkout

Com validateCard: true (padrão):
  1. O plano de assinatura é validado
  2. O customer é criado ou localizado pelo email
  3. O cartão é registrado no token vault
  4. Uma transação de teste (até R$ 2,00) é feita no cartão
  5. A assinatura é criada com status pending_card_activation
  6. O cliente deve ativar o cartão usando o endpoint /cards/{cardTokenId}/activate
  7. Após ativação, a primeira cobrança é processada automaticamente
Com validateCard: false:
  1. O plano de assinatura é validado
  2. O customer é criado ou localizado pelo email
  3. O cartão é registrado no token vault
  4. A primeira cobrança é efetuada imediatamente
  5. A assinatura é armazenada com status active (se cobrança bem-sucedida)

Ativar Cartão da Assinatura

Quando a assinatura é criada com validateCard: true, o cartão precisa ser ativado antes de processar a primeira cobrança.

Como funciona

  1. O cliente verifica a fatura do cartão e localiza a transação de teste (até R$ 2,00)
  2. O valor exato da transação é informado no endpoint de ativação de cartões
  3. Após confirmação, o cartão é ativado, o valor de teste é estornado
  4. 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):
O activationValue deve ser o valor decimal exato mostrado na fatura (ex: “1.50”, “0.75”), NÃO em centavos.
Resposta:

Ciclo de Vida da Assinatura

Status da Assinatura

Atualizar Assinatura

Você pode atualizar dados de uma assinatura ativa:
Campos atualizáveis:

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: regret
  • refunded: true
Resposta:

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: regular
  • refunded: false
Resposta:

Histórico de Cobranças

Ao buscar uma assinatura por ID, você recebe o histórico completo de cobranças:
Resposta (parcial):

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á status pending_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 campo metadata 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