Pular para o conteúdo
Criar conta
ou
Entrar
O logotipo da documentação da Stripe
/
Pergunte à IA
Criar conta
Login
Comece já
Pagamentos
Receita
Plataformas e marketplaces
Gestão de valores
Recursos para desenvolvedores
Visão geralVer todos os produtos
Comece a criar
Comece a desenvolver
    Configure seu ambiente de desenvolvimento
    Envie sua primeira solicitação de API
    Aceitar um pagamento
    Criar e testar novos recursos
    Lista de verificação da transição para produção
Sobre as APIs
Criar com um LLM
Use a Stripe sem programação
Configurar a Stripe
Crie uma conta
Stripe Dashboard
Migrar para a Stripe
Página inicialComece jáStart developing

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.

Redirecione para uma página de pagamento hospedada pela Stripe usando o Stripe Checkout. Compare esta integração com as outras formas de integração da Stripe.

Visualização do Checkout

Esforço de integração

Low-code

Tipo de integração

Redirecionar para a página de pagamento hospedada pela Stripe

Personalização da IU

Personalização limitada

Experimente

Primeiro, cadastre-se para obter uma conta Stripe.

Use nossas bibliotecas oficiais para acessar a API da Stripe no seu aplicativo:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Redirecione seu cliente para o Stripe Checkout
Lado do cliente
Lado do servidor

Adicione um botão de checkout ao site para chamar um endpoint do lado do servidor e criar uma sessão do Checkout.

Também é possível criar uma sessão do Checkout para um cliente existente, permitindo preencher campos do Checkout com dados de contato conhecidos e unificar o histórico de compras desse cliente.

checkout.html
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

A Sessão de Checkout a representação programática do que seu cliente vê ao ser redirecionado a um formulário de pagamento. Você pode configurá-lo com opções como:

  • Itens de linha a ser cobrado
  • Moedas a usar

Você deve preencher o success_url com o valor do URL de uma página no seu site para a qual o Checkout envia o cliente após a conclusão do pagamento. Como opção, você pode informar um valor cancel_url de uma página no seu site para a qual o Checkout envia o cliente se ele encerrar o processo de pagamento antes da conclusão.

Observação

As Sessões do Checkout expiram 24 horas após a criação por padrão.

Depois de criar uma Sessão do Checkout, redirecione o cliente ao URL retornado na resposta.

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', }) redirect session.url, 303 end

formas de pagamento

Por padrão, a Stripe habilita cartões e outras formas de pagamento comuns. É possível ativar ou desativar formas de pagamento individuais no Stripe Dashboard. No Checkout, a Stripe avalia a moeda e as restrições e apresenta dinamicamente as formas de pagamento aceitas ao cliente.

Para ver como as formas de pagamento aparecem para os clientes, informe um ID de transação ou defina um valor e moeda de pedido no Dashboard.

Você pode ativar Apple Pay e Google Pay nas configurações de formas de pagamento. Por padrão, o Apple Pay fica ativado, e o Google Pay, desativado. No entanto, em alguns casos, a Stripe remove-os mesmo quando estão ativados. Removemos o Google Pay se você ativar o imposto automático sem coletar um endereço de entrega.

As páginas hospedadas na Stripe do Checkout não precisam de mudanças na integração para habilitar Apple Pay ou Google Pay. A Stripe trata esses pagamentos da mesma forma que os outros pagamentos com cartão.

Confirme seu endpoint

Confirme se o endpoint pode ser acessado iniciando seu servidor web (por exemplo, localhost:4242) e executando o seguinte comando:

Command Line
curl -X POST -is "http://localhost:4242/create-checkout-session" -d ""

Você deve ver uma resposta no seu terminal assim:

Command Line
HTTP/1.1 303 See Other Location: https://checkout.stripe.com/c/pay/cs_test_... ...

Testes

Agora o botão de checkout já deve estar pronto para redirecionar seu cliente para o Stripe Checkout.

  1. Clique no botão de checkout.
  2. Você será redirecionado para o formulário de pagamento do Stripe Checkout.

Se a sua integração não estiver funcionando:

  1. Abra a guia Rede nas ferramentas de desenvolvedor do navegador.
  2. Clique no botão de checkout e confirme se uma solicitação de XHR foi enviada para o endpoint no lado do servidor (POST /create-checkout-session).
  3. Verifique se a solicitação retorna um status 200.
  4. Use console.log(session) dentro de seu ouvinte de clique do botão para confirmar se os dados corretos são retornados.

Mostrar uma página de finalização
Lado do cliente
Lado do servidor

É importante que o cliente veja uma página de finalização depois de enviar o formulário de pagamento corretamente. Hospede essa página de finalização no seu site.

Criar uma página de finalização mínima:

success.html
<html> <head><title>Thanks for your order!</title></head> <body> <h1>Thanks for your order!</h1> <p> We appreciate your business! If you have any questions, please email <a href="mailto:orders@example.com">orders@example.com</a>. </p> </body> </html>

Em seguida, atualize o endpoint de criação da sessão do Checkout para usar essa nova página:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="http://localhost:4242/success.html" \ --data-urlencode cancel_url="http://localhost:4242/cancel.html"

Observação

Se quiser personalizar a página de finalização, leia o guia sobre a página de finalização personalizada.

Testes

  1. Clique no botão do checkout.
  2. Preencha os dados de pagamento com os dados do cartão de teste:
    • Informe o número do cartão 4242 4242 4242 4242.
    • 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.
  3. Clique em Pagar.
  4. Você será redirecionado para a nova página de finalização.

Em seguida, encontre o novo pagamento no Stripe Dashboard. Os pagamentos bem-sucedidos aparecem na lista de pagamentos. Quando você clicar em um pagamento, ele leva você até a página de detalhes do pagamento. A seção Resumo do checkout contém os dados de cobrança e a lista de itens comprados, que você pode usar para processar manualmente o pedido.

Processar eventos pós-pagamento

A Stripe envia um evento checkout.session.completed quando um cliente conclui o pagamento de uma sessão do Checkout. Use a ferramenta Dashboard webhook ou siga o guia de webhooks para receber e processar esses eventos, que podem levar você a:

  • Envie um e-mail de confirmação do pedido ao cliente.
  • Registre a venda em banco de dados.
  • Inicie um fluxo de trabalho de envio.

Escute esses eventos em vez de esperar que o cliente seja redirecionado de volta ao seu site. Acionar a execução apenas na página inicial do Checkout não é confiável. Configurar sua integração para escutar eventos assíncronos permite aceitar diferentes tipos de formas de pagamento com uma única integração.

Saiba mais no nosso guia de execução para o Checkout.

Gerencie os seguintes eventos ao coletar pagamentos com o Checkout:

EventoDescriçãoAção
checkout.session.completedEnviado quando um cliente conclui uma sessão do Checkout.Envie ao cliente uma confirmação de pedido e execute o pedido.
checkout.session.async_payment_succeededEnviado quando um pagamento feito com uma forma de pagamento postergada, como débito automático ACH, é bem-sucedido.Envie ao cliente uma confirmação de pedido e execute o pedido.
checkout.session.async_payment_failedEnviado quando ocorre uma falha em um pagamento feito com uma forma de pagamento postergada, como débito automático ACH.Notifique o cliente sobre a falha e traga-o de volta à sessão para tentar pagar novamente.

Teste sua integração

Para testar a integração do formulário de pagamento hospedado pela Stripe:

  1. Crie uma Sessão do Checkout.
  2. Preencha os dados de pagamento com um método da tabela a seguir.
    • 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.
  3. Clique em Pagar. Você será redirecionado para success_url.
  4. Acesse o Dashboard e procure o pagamento na página Transações. Se o seu pagamento for bem-sucedido, ele aparecerá na lista.
  5. Clique no pagamento para ver mais detalhes, como um resumo do Checkout com dados de faturamento e a lista de itens comprados. Você pode usar esses dados para executar o pedido.

Saiba como testar sua integração.

Número do cartãoCenárioComo testar
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 do cartão de crédito com qualquer validade, CVC e código postal.
O pagamento com cartão precisa de autenticação.Preencha o formulário do cartão de crédito usando o número do cartão de crédito com qualquer validade, CVC e código postal.
O cartão é recusado com um código de recusa como insufficient_funds.Preencha o formulário do cartão de crédito usando o número do cartão de crédito com qualquer validade, CVC e código postal.
O cartão UnionPay tem um comprimento variável de 13 a 19 dígitos.Preencha o formulário do cartão de crédito usando o número do cartão de crédito com qualquer validade, CVC e código postal.

Consulte Testes para obter mais informações sobre como testar sua integração.

Cartões de teste

NúmeroDescrição
Finaliza e processa o pagamento imediatamente.
Exige autenticação 3D Secure 2 para um pagamento bem-sucedido.
Sempre falha, com o código de recusa insufficient_funds.

OpcionalCriar produtos e preços

Permitir que os clientes escolham o que pagar

Você pode configurar sua sessão do Checkout para aceitar gorjetas e doações ou vender produtos e serviços na modalidade pague quanto quiser.

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.

A API precisa apenas de um name para criar um produto. O Checkout exibe os atributos name, description e images informados para o produto.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name=T-shirt

Depois crie um preço para definir quanto cobrar pelo produto. Isso inclui quanto custa o produto e qual moeda usar.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=2000 \ -d currency=usd

Cada preço que você criar tem um ID. Ao criar uma sessão de checkout, indique o ID do preço e a quantidade. Se você vende em várias moedas, torne seu Price multimoeda. O Checkout determina automaticamente a moeda local do cliente e a apresenta, se aceita pelo Price.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=payment \ -d "line_items[0][price]"={{PRICE_ID}} \ -d "line_items[0][quantity]"=1 \ --data-urlencode success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ --data-urlencode cancel_url="https://example.com/cancel"

OpcionalPreencher dados do cliente
Lado 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.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ --data-urlencode customer_email="customer@example.com" \ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/cancel"

OpcionalSalvar dados da forma de pagamento
Lado do servidor

Por padrão, as formas de pagamento usadas para fazer um pagamento avulso com o Checkout não estão disponíveis para uso futuro.

Salve formas de pagamento para cobrá-las fora de sessão

Você pode configurar o Checkout para salvar formas de pagamento usadas para fazer um pagamento avulso passando o argumento payment_intent_data.setup_future_usage. Isso é útil quando você precisa capturar uma forma de pagamento registrada para usar em tarifas futuras, como tarifas de cancelamento ou não comparecimento.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer_creation=always \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "payment_intent_data[setup_future_usage]"=off_session

Se você usa o Checkout no modo de subscription, a Stripe salva automaticamente a forma de pagamento para cobrar pagamentos subsequentes. Formas de pagamento com cartão salvas para clientes usando o modo setup_future_usage ou subscription não aparecem para compras de devolução no Checkout (mais detalhes abaixo). Recomendamos usar texto personalizado para vincular eventuais termos relevantes a respeito do uso de dados de pagamento salvos.

Cuidado

As leis globais de privacidade são complicadas e variadas. Recomendamos entrar em contato com a equipe jurídica ou de privacidade antes de implementar o setup_future_usage, porque isso pode afetar a estrutura de conformidade com requisitos de privacidade. Consulte as orientações do Conselho de Proteção Europeu para saber mais sobre como salvar dados de pagamento.

Salvar formas de pagamento para preenchê-las no Checkout

Por padrão, o Checkout usa o Link para oferecer aos clientes a opção de salvar e reutilizar os dados de pagamento com segurança. Se você preferir gerenciar as formas de pagamento por conta própria, use saved_payment_method_options.payment_method_save ao criar uma sessão do Checkout para permitir que os clientes salvem formas de pagamento para compras futuras no Checkout.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer_creation=always \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "saved_payment_method_options[payment_method_save]"=enabled

Passar esse parâmetro no modo de pagamento ou assinatura exibe uma caixa de seleção opcional para permitir que os clientes salvem explicitamente suas formas de pagamento para compras futuras. Quando os clientes marcam essa caixa de seleção, o Checkout salva a forma de pagamento com allow_redisplay: always. O Checkout usa esse parâmetro para determinar se uma forma de pagamento pode ser preenchida antecipadamente em compras futuras. Ao usar saved_payment_method_options.payment_method_save, você não precisa passar setup_future_usage para salvar a forma de pagamento.

O uso de saved_payment_method_options.payment_method_save exige um Customer. Para salvar um novo cliente, defina o customer_creation da sessão do Checkout como always. Caso contrário, a sessão não salva o cliente ou a forma de pagamento.

Se payment_method_save não for passado ou se o cliente não concordar em salvar a forma de pagamento, o Checkout ainda salvará as formas de pagamento criadas no modo subscription ou usando setup_future_usage. Essas formas de pagamento têm o valor allow_redisplay de limited, o que evita que sejam preenchidas para devolução de compras e permite que você cumpra as regras das bandeiras de cartão e os regulamentos de proteção de dados. Saiba como alterar o comportamento padrão habilitado por esses modos e como alterar ou sobrepor o comportamento do allow_redisplay.

Observação

Você pode usar o Checkout para salvar cartões e outras formas de pagamento para cobrá-los fora da sessão, mas o Checkout preenche automaticamente os cartões salvos. Saiba como preencher previamente cartões salvos. Para salvar uma forma de pagamento sem um pagamento inicial, use o Checkout no modo de configuração.

Permitir que os clientes removam formas de pagamento salvas

Para permitir que os clientes removam uma forma de pagamento salva para que ela não volte a aparecer em pagamentos futuros, use saved_payment_method_options.payment_method_remove ao criar uma sessão do Checkout.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer={{CUSTOMER_ID}} \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html" \ -d "saved_payment_method_options[payment_method_remove]"=enabled

O cliente não pode remover uma forma de pagamento se ela estiver vinculada a uma assinatura ativa e o cliente não tiver uma forma de pagamento padrão salva para pagamentos de faturas e assinaturas.

OpcionalSeparar autorização e captura
Lado 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:

  1. Confirme se a Stripe autorizou a forma de pagamento do cliente.
  2. Consulte seu sistema de gestão de inventário para saber se o item ainda está disponível.
  3. Atualize seu sistema de gestão de inventário para indicar que o cliente comprou o item.
  4. Capture o pagamento do cliente.
  5. 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.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price]"={{PRICE_ID}} \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_intent_data[capture_method]"=manual \ --data-urlencode success_url="https://example.com/success.html" \ --data-urlencode cancel_url="https://example.com/cancel.html"

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 clientes
Sem 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.

Veja também

  • Adicionar descontos
  • Recolher impostos
  • Coletar IDs fiscais
  • Adicionar envio
  • Personalize sua marca
Esta página foi útil?
SimNão
  • Precisa de ajuda? Fale com o suporte.
  • Participe do nosso programa de acesso antecipado.
  • Confira nosso changelog.
  • Dúvidas? Fale com a equipe de vendas.
  • LLM? Read llms.txt.
  • Powered by Markdoc
Code quickstart
Guias relacionados
API Elements Appearance
Mais cenários de pagamento
Como funcionam os cartões