Crie uma integração de assinaturas
Crie e gerencie assinaturas para aceitar pagamentos recorrentes.

Personalize logotipo, imagens e cores.
Use formulários hospedados criados previamente para coletar pagamentos e gerenciar assinaturas.
Clone uma amostra de integração do GitHub.
Para ver uma versão detalhada deste guia, consulte o Início rápido da integração do Billing.
Explore o exemplo no GitHub ou a demonstração.
O que você pode criar
Este guia descreve como vender assinaturas mensais com preço fixo usando o Stripe Checkout.
Este guia ensina a:
- Modelar seus negócios criando um catálogo de produtos
- Adicionar uma sessão do Checkout ao seu site, com um botão e páginas de confirmação e cancelamento
- Monitorar os eventos de assinatura e dar acesso ao seu serviço
- Configurar o portal do cliente
- Adicionar uma sessão do portal de clientes ao seu site, com botão e redirecionamento
- Permitir que os clientes gerenciem a assinatura no portal
Após a conclusão da integração, você pode ampliá-la para:
- Exibir impostos
- Aplicar descontos
- Oferecer aos clientes um período de avaliação gratuita
- Adicionar mais formas de pagamento
- Integrar a página da fatura hospedada
- Usar o Checkout no modo de configuração
- Configurar cobrança por consumo, níveis de preços e preços baseados em uso
- Gerenciar cobranças proporcionais
- Permitir que os clientes assinem vários produtos
- Integre direitos para gerenciar o acesso aos recursos do seu produto
Configurar a Stripe
Instale o cliente Stripe de sua escolha:
Instale a Stripe CLI (opcional). A CLI fornece testes de webhook que você pode executar para criar produtos e preços.
Para obter opções de instalação adicionais, consulte Comece a usar o Stripe CLI.
Criar o modelo de preçosDashboard ou Stripe CLI
Crie seus produtos e preços usando o Dashboard ou a Stripe CLI.
Este exemplo usa um serviço de preço fixo com duas opções diferentes de nível de serviço: Básico e Premium. Para cada opção de nível de serviço, você precisa criar um produto e um preço recorrente. (Se quiser adicionar uma cobrança avulsa para um item como tarifa de configuração, crie um terceiro produto com um preço avulso. Para simplificar, este exemplo não inclui uma cobrança avulsa.)
Neste exemplo, o faturamento de cada produto é mensal. O produto básico custa 5 USD e o produto Premium custa 15 USD.
Se você oferecer vários intervalos de cobrança, use o Checkout para fazer upsell aos clientes em intervalos de cobrança maiores e coletar mais receitas antecipadamente.
Para outros modelos de preços, consulte os exemplos de cobrança.
Criar uma sessão do CheckoutCliente e servidor
Adicione um botão de checkout ao seu site para chamar um endpoint do lado do servidor e criar uma sessão do Checkout.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <!-- Note: If using PHP set the action to /create-checkout-session.php --> <input type="hidden" name="priceId" value="price_G0FvDp6vZvdwRZ" /> <button type="submit">Checkout</button> </form> </body> </html>
No back-end do seu aplicativo, defina um endpoint que cria a sessão para a chamada do seu front-end. Você precisa destes valores:
- O ID do preço da assinatura ao qual o cliente está se registrando. Seu front-end passa esse valor
- O
success_
, uma página do seu site que o Checkout envia ao cliente quando ele finaliza o pagamentourl
Como opção, você pode informar cancel_
, uma página no seu site para a qual o Checkout encaminha o cliente se ele cancelar o processo de pagamento. Também é possível configurar uma âncora de ciclo de cobrança para sua assinatura nesta chamada.
Se tiver criado um preço avulso na etapa 2, passe também esse ID de preço. Depois de criar uma Sessão do Checkout, redirecione o cliente ao URL retornado na resposta.
Observação
Você pode usar lookup_keys para obter preços em vez de IDs de preço. Veja o exemplo de aplicativo para ver um exemplo.
Este exemplo personaliza o success_
vinculando o ID da sessão. Para obter mais informações sobre essa abordagem, consulte a documentação para saber como personalizar a página de confirmação.
Na Dashboard, ative as formas de pagamento que deseja aceitar de seus clientes. O checkout aceita várias formas de pagamento.
Provisionar e monitorar assinaturasServidor
Depois que a assinatura for cadastrada, o cliente retornará ao seu site no success_
, que inicia um webhook checkout.
. Ao receber um evento checkout.
, você pode fornecer a assinatura. Continue fornecendo mensalmente (se a cobrança for mensal) à medida que recebe eventos invoice.
. Se você receber um evento invoice.
, notifique seu cliente e encaminhe-o ao portal do cliente para atualizar a forma de pagamento.
Para determinar a próxima etapa da lógica do sistema, verifique o tipo de evento e analise a carga de cada objeto de evento, como invoice.
. Armazene os objetos de evento subscription.
e customer.
no banco de dados para verificação.
Para fins de teste, é possível monitorar eventos no Dashboard. Para produção, configure um endpoint de webhook e assine os tipos de evento apropriados. Se não souber sua chave STRIPE_
, clique no webhook no Dashboard para visualizá-la.
Mínimo de tipos de evento a serem monitorados:
Nome do evento | Descrição |
---|---|
checkout. | Enviado quando um cliente finaliza a sessão do Checkout, informando sobre uma nova compra. |
invoice. | Enviado a cada intervalo de faturamento quando um pagamento for efetivado. |
invoice. | Enviado a cada intervalo de faturamento se houver um problema com a forma de pagamento do seu cliente. |
Para monitorar ainda mais eventos, consulte Webhooks de assinatura.
Configurar o portal de clientesDashboard
O portal do cliente permite que os clientes gerenciem diretamente suas assinaturas e faturas existentes.
Use o Dashboard para configurar o portal. No mínimo, configure-o para que os clientes possam atualizar as formas de pagamento. Consulte Integrar o portal do cliente para obter informações sobre outras configurações que podem ser realizadas.
Criar uma sessão no portalServidor
Defina um endpoint que cria a sessão do portal de clientes para a chamada do seu frontend. Aqui, o CUSTOMER_
se refere ao ID do cliente criado por uma sessão do Checkout que você salvou ao processar o webhook checkout.
. Você também pode definir um link de redirecionamento padrão para o portal no Dashboard.
Passe um valor opcional return_
para a página no seu site para redirecionar o cliente após ele terminar de gerenciar a assinatura:
Enviar clientes ao portal de clientesCliente
No seu front-end, adicione um botão à página success_
que fornece um link para o portal de clientes:
<html> <head> <title>Manage Billing</title> </head> <body> <form action="/customer-portal" method="POST"> <!-- Note: If using PHP set the action to /customer-portal.php --> <button type="submit">Manage Billing</button> </form> </body> </html>
Depois de sair do portal do cliente, o cliente retorna ao seu site no return_
. Continue a monitorar eventos para acompanhar o estado da assinatura do cliente.
Se você configurar o portal do cliente para permitir ações como o cancelamento de uma assinatura, veja como outros eventos podem ser monitorados em Integrar o portal do cliente.
Teste a integração
Testar formas de pagamento
Use a tabela a seguir para testar diferentes formas de pagamento e cenários.
Forma de pagamento | Cenário | Como testar |
---|---|---|
Débito automático BECS | O cliente paga com débito automático BECS. | Preencha o formulário usando o número de conta 900123456 e BSB 000-000 . Inicialmente, o status do PaymentIntent muda para processing e, três minutos depois, para succeeded . |
Débito automático BECS | O pagamento do cliente falha com um código de erro account_ . | Preencha o formulário usando o número de conta 111111113 e BSB 000-000 . |
Cartão de crédito | O pagamento com cartão é bem-sucedido e não precisa de autenticação. | Preencha o formulário do cartão de crédito usando o número de cartão de crédito 4242 4242 4242 4242 com qualquer validade, CVC e código postal. |
Cartão de crédito | O pagamento com cartão precisa de autenticação. | Preencha o formulário do cartão de crédito usando o número 4000 0025 0000 3155 com qualquer validade, CVC e código postal. |
Cartão de crédito | O cartão é recusado com um código de recusa como insufficient_ . | Preencha o formulário do cartão de crédito usando o número 4000 0000 0000 9995 com qualquer validade, CVC e código postal. |
Débito automático SEPA | O cliente paga com débito automático SEPA. | Preencha o formulário usando o número de conta AT321904300235473204 . Inicialmente, o status do PaymentIntent muda para processing e, três minutos depois, para succeeded. |
Débito automático SEPA | O status do PaymentIntent do cliente muda de processing para requires_ . | Preencha o formulário usando o número de conta AT861904300235473202 . |
Monitoramento de eventos
Configure webhooks para ouvir eventos de alteração de assinatura, como atualizações e cancelamentos. Saiba mais sobre webhooks de assinatura. É possível visualizar eventos no Dashboard ou com a Stripe CLI.
Para obter mais detalhes sobre como testar sua integração com o Billing, leia o guia.