Pular para o conteúdo
Criar conta ou Entrar
O logotipo da documentação da Stripe
/
Pergunte à IA
Criar contaLogin
Comece já
Pagamentos
Receita
Plataformas e marketplaces
Gestão de valores
Recursos para desenvolvedores
APIs e SDKsAjuda
Visão geralAceitar um pagamentoAtualize sua integração
Pagamentos online
Visão geralEncontre seu caso de uso
Usar Payment Links
Usar uma página de checkout predefinida
    Visão geral
    Guias de início rápido
    Como funciona o Checkout
    Personalizar a aparência
    Coletar informações adicionais
    Colete impostos
    Atualizar checkout dinamicamente
    Gerencie seu catálogo de produtos
    Assinaturas
    Gerenciar formas de pagamento
    Permita que os clientes paguem na moeda local
    Adicione descontos, upsells e itens opcionais
    Configurar pagamentos futuros
    Salvar dados de pagamento durante o pagamento
    Após o pagamento
    Migrar do Checkout antigo
    Migrar o Checkout para usar Prices
Criar uma integração personalizada com o Elements
Crie uma integração no aplicativo
Usar o Managed PaymentsPagamentos recorrentes
Pagamentos presenciais
Terminal
Formas de pagamento
Adicionar formas de pagamento
Gerenciar formas de pagamento
Checkout mais rápido com o Link
Operações de pagamento
Análises
Saldos e tempo de liquidação
Conformidade e segurança
Moedas
Recusas
Contestações
​Prevenção​ a fraudes​
Proteção contra fraudes do Radar
Repasses
RecibosReembolsos e cancelamentos
Integrações avançadas
Fluxos de pagamento personalizados
Aquisição flexível
Pagamentos fora da sessão
Orquestração multiprocessador
Muito mais que pagamentos
Abra sua empresa
Cripto
Comércio agêntico
Financial Connections
Climate
Verificar identidades
Estados Unidos
Português (Brasil)
Página inicialPagamentosUse a prebuilt checkout page

Set up future payments

Learn how to save payment details in a Checkout session and charge your customers later.

To collect customer payment details that you can reuse later, use Checkout’s setup mode. Setup mode uses the Setup Intents API to create Payment Methods.

Confira nosso exemplo completo e funcional no GitHub.

Configurar a Stripe
Lado do servidor

Primeiro, você precisa de uma conta Stripe. Inscreva-se aqui.

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'

Criar uma sessão de checkout
Lado do clienteLado do servidor

Adicione um botão de checkout ao seu site para invocar um endpoint do lado do servidor e criar uma Sessão do Checkout.

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

To create a setup mode Session, use the mode parameter with a value of setup when creating the Session. You can optionally specify the customer parameter to automatically attach the created payment method to an existing customer. Checkout uses Dynamic payment methods by default, which requires you to pass the currency parameter when using setup mode.

Append the {CHECKOUT_SESSION_ID} template variable to the success_url to get access to the Session ID after your customer successfully completes a Checkout Session. After creating the Checkout Session, redirect your customer to the URL returned in the response.

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=setup \ -d currency=usd \ -d customer=
"{{CUSTOMER_ID}}"
\ --data-urlencode success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}"

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.

Acessar a sessão do Checkout
Lado do servidor

Depois que o cliente finaliza a sessão do Checkout, você precisa acessar o objeto Session, o que pode ser feito de duas formas:

  • Asynchronously: Handle checkout.session.completed webhooks, which contain a Session object. Learn more about setting up webhooks.
  • Synchronously: Obtain the Session ID from the success_url when a user redirects back to your site. Use the Session ID to retrieve the Session object.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions/cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

A melhor opção depende de sua tolerância a abandono de sessão, porque nem sempre o cliente chega a success_url depois de concluir o pagamento. É possível que o cliente feche a guia do navegador antes do redirecionamento. Gerenciar webhooks impede que sua integração sofra esse tipo de abandono de sessão.

After you have retrieved the Session object, get the value of the setup_intent key, which is the ID for the SetupIntent created during the Checkout Session. A SetupIntent is an object used to set up the customer’s bank account information for future payments.

Exemplo de conteúdo de checkout.session.completed:

{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "client_reference_id": null, "customer": "", "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }

Registre o ID de setup_intent para a próxima etapa.

Acessar o SetupIntent
Lado do servidor

Using the setup_intent ID, retrieve the SetupIntent object. The returned object contains a payment_method ID that you can attach to a customer in the next step.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/setup_intents/seti_1EzVO3HssDVaQm2PJjXHmLlM \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Nota

If you’re requesting this information synchronously from the Stripe API (as opposed to handling webhooks), you can combine the previous step with this step by expanding the SetupIntent object in the request to the /v1/checkout/session endpoint. Doing this prevents you from having to make two network requests to access the newly created PaymentMethod ID.

Charge the payment method later
Lado do servidor

If you didn’t create the Checkout Session with an existing customer, use the ID of the PaymentMethod to attach the PaymentMethod to a Customer. After you attach the PaymentMethod to a customer, you can make an off-session payment using a PaymentIntent:

  • Set customer to the ID of the Customer and payment_method to the ID of the PaymentMethod.
  • Set off_session to true to indicate that the customer isn’t in your checkout flow during a payment attempt and can’t fulfill an authentication request made by a partner, such as a card issuer, bank, or other payment institution. If, during your checkout flow, a partner requests authentication, Stripe requests exemptions using customer information from a previous on-session transaction. If the conditions for exemption aren’t met, the PaymentIntent might throw an error.
  • Set the value of the PaymentIntent’s confirm property to true, which causes confirmation to occur immediately when you create the PaymentIntent.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=usd \ -d customer=
"{{CUSTOMER_ID}}"
\ -d payment_method=
"{{PAYMENT_METHOD_ID}}"
\ -d off_session=true \ -d confirm=true

When a payment attempt fails, the request also fails with a 402 HTTP status code and the status of the PaymentIntent is requires_payment_method. Notify your customer to return to your application (for example, by sending an email or in-app notification) and direct your customer to a new Checkout Session to select another payment method.

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]"=1099 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}"
Esta página foi útil?
SimNão
  • Precisa de ajuda? Fale com o suporte.
  • Confira nosso changelog.
  • Dúvidas? Fale com a equipe de vendas.
  • LLM? Read llms.txt.
  • Powered by Markdoc