Aceitar um pagamento
Aceitar pagamentos online com segurança
Crie um formulário de pagamento ou use uma página de checkout pré-integrada para começar a aceitar pagamentos online.
Crie uma página de checkout no seu site usando o Stripe Elements e a Checkout Sessions, uma integração que gerencia impostos, descontos, tarifas de envio e muito mais.
Configure o servidorLado do servidor
Antes de começar, você precisa se cadastrar para uma conta Stripe.
Use as bibliotecas Stripe oficiais para acessar o API do seu aplicativo.
Configure o SDK para usar pelo menos a versão de API 2025-03-31..
Criar uma sessão do CheckoutLado do servidor
Adicione um endpoint ao seu servidor que cria uma sessão do Checkout e retorna seu segredo do cliente para o frontend. Uma sessão do Checkout representa a sessão do seu cliente enquanto ele paga por compras ou assinaturas avulsas. As sessões do Checkout expiram 24 horas após a criação.
Coletar dados de pagamentoLado do cliente
Colete dados de pagamento no cliente com o Payment Element. O Payment Element é um componente de IU que simplifica a coleta de dados de pagamento para diversas formas de pagamento.
Teste a integração
- Acesse a página de checkout.
- Preencha os dados de pagamento com uma forma de pagamento da tabela a seguir. Para pagamentos com cartão:
- Informe uma data futura qualquer como validade do cartão.
- Informe qualquer número de 3 dígitos como CVC.
- Informe qualquer código postal de cobrança.
- Envie o pagamento para a Stripe.
- Acesse o Dashboard e procure o pagamento na página Transações. Se o seu pagamento for bem-sucedido, ele aparecerá na lista.
- Clique no pagamento para ver mais detalhes, como dados de cobrança e a lista de itens comprados. Você pode usar essas informações para executar o pedido.
Consulte Testes para obter mais informações sobre como testar sua integração.
OpcionalCriar produtos e preços
Antes de criar uma sessão do Checkout , você pode criar antecipadamente Products e Prices. Use produtos para representar diferentes produtos físicos ou níveis de serviço e Prices para representar os preços de cada produto.
Por exemplo, você pode criar uma camiseta como produto com um preço de 20 USD. Isso permite que você atualize e adicione preços sem precisar alterar os detalhes dos produtos correspondentes. Você pode criar produtos e preços com o Stripe Dashboard ou a API. Saiba mais sobre como funcionam produtos e preços.
Cada preço que você cria tem um ID. Quando você criar uma Checkout Session, faça referência ao ID e à quantidade do preço. Se estiver vendendo em várias moedas, crie seu Price multimoedas. O Checkout automaticamente determina a moeda local do cliente e apresenta essa moeda se o Price aceitar.
OpcionalPreencher dados do clienteLado do servidor
Se você já coletou o e-mail do cliente e quer preenchê-lo antecipadamente na sessão de checkout, passe customer_email ao criar uma sessão de checkout.
OpcionalSalvar dados da forma de pagamento
Saiba como aceitar um pagamento e salvar os dados de pagamento do cliente para compras futuras.
OpcionalEscutar mudanças na sessão do Checkout
Escutar mudanças na sessão do Checkout
Você pode escutar mudanças na sessão do Checkout adicionando um ouvinte no evento change com checkout.on.
OpcionalColetar endereços de cobrança e envio
Coletar um endereço de cobrança
Por padrão, uma sessão do Checkout coleta os dados mínimos de cobrança necessários para pagamento por meio do Payment Element.
Usar o Billing Address Element
Você pode coletar endereços de cobrança completos usando o Billing Address Element.
Primeiro, passe billing_address_collection=required ao criar a sessão do Checkout.
Usar um formulário personalizado
Você pode criar seu próprio formulário para coletar endereços de cobrança.
- Se sua página de checkout tiver uma etapa de coleta de endereços diferente antes da confirmação, chame updateBillingAddress quando o cliente enviar o endereço.
- Caso contrário, você pode enviar o endereço quando o cliente clicar no botão “Pagar”, passando billingAddress para confirm.
Coletar endereços de cobrança parciais
Para coletar endereços de cobrança parciais, como apenas o país e o código postal, passe billing_address_collection=auto.
Ao coletar endereços de cobrança parciais, você deve coletar endereços manualmente. Por padrão, o Payment Element coleta automaticamente os dados mínimos de cobrança necessários para o pagamento. Para evitar a coleta dupla de dados de cobrança, passe fields.billingDetails=never quando criar o Payment Element. Se você pretende coletar apenas um subconjunto de dados de cobrança (como o nome do cliente), passe never apenas para os campos que você pretende coletar por conta própria.
Coletar um endereço de entrega
Para coletar o endereço de entrega de um cliente, passe o parâmetro shipping_address_collection ao criar a sessão do Checkout.
Quando você coleta um endereço de entrega, também precisa especificar para quais países deseja efetuar entregas. Configure a propriedade allowed_countries com uma matriz de códigos de país ISO de duas letras.
Como usar o Shipping Address Element
Você pode coletar endereços de entrega completos com o Shipping Address Element.
Escutar mudanças na sessão do Checkout
Você pode escutar alterações na sessão do Checkout adicionando um ouvinte de eventos para gerenciar alterações relacionadas ao endereço.
Usar um formulário personalizado
Você pode criar seu próprio formulário para coletar endereços de entrega.
- Se sua página de checkout tiver uma etapa de coleta de endereço diferente antes da confirmação, chame updateShippingAddress quando o cliente enviar o endereço.
- Caso contrário, você pode enviar o endereço quando o cliente clicar no botão “Pagar”, passando shippingAddress para confirm.
OpcionalSeparar autorização e capturaLado do servidor
A Stripe aceita pagamentos com cartão em duas etapas. Assim, você pode autorizar o cartão e depois capturar os fundos. Quando a Stripe autoriza um pagamento, o emissor do cartão garante os fundos e faz uma retenção do valor do pagamento no cartão do cliente. Você tem um determinado tempo para capturar os fundos, dependendo do cartão. Se você não capturar o pagamento antes do vencimento da autorização, ele será cancelado e o emissor liberará os fundos retidos.
Separar a autorização da captura é útil para quem precisa realizar outros procedimentos entre a confirmação de que o cliente pode pagar e a cobrança do pagamento. Por exemplo: se você tem limite de estoque, pode ser necessário confirmar se o item comprado pelo cliente usando o Checkout ainda está disponível, antes de capturar o pagamento e executar o pedido. Para isso, use este fluxo de trabalho:
- Confirme se a Stripe autorizou a forma de pagamento do cliente.
- Consulte seu sistema de gestão de inventário para saber se o item ainda está disponível.
- Atualize seu sistema de gestão de inventário para indicar que o cliente comprou o item.
- Capture o pagamento do cliente.
- Informe ao cliente se a compra foi finalizada em sua página de confirmação.
Para indicar que você quer separar a autorização da captura, defina payment_intent_data.capture_method como manual quando criar a sessão do Checkout. Isso instrui a Stripe a autorizar somente o valor no cartão do cliente.
Para capturar um pagamento pendente, você pode usar o Dashboard ou o endpoint capture. Para capturar automaticamente os pagamentos, é preciso ter acesso ao PaymentIntent criado durante a sessão do Checkout, que você pode obter pelo objeto Session.
OpcionalGerenciamento de contas de clientesSem código
Permita que seus clientes gerenciem as próprias contas, compartilhando um link para o seu portal do cliente. O portal do cliente permite que os clientes façam login com o próprio e-mail para gerenciar assinaturas, atualizar formas de pagamento e muito mais.
OpcionalExecução de pedidos
Saiba como receber uma notificação automaticamente quando um cliente paga.