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 geral
Sobre os pagamentos da Stripe
    Visão geral
    Aceitar um pagamento
    Moedas
    Recusas
    Repasses
    Pagamentos recorrentes
    Autenticação do 3D Secure
    Reembolsar e cancelar pagamentos
    Saldos e tempo de liquidação
    Recibos
    Gerenciar eventos de webhook
    Preparação para SCA
    APIs mais antigas
Atualize sua integração
Análise de pagamentos
Pagamentos online
Visão geralEncontre seu caso de usoUsar o Managed Payments
Usar Payment Links
Usar uma página de checkout predefinida
Criar uma integração personalizada com o Elements
Crie uma integração no aplicativo
Formas de pagamento
Adicionar formas de pagamento
Gerenciar formas de pagamento
Checkout mais rápido com o Link
Interfaces de pagamento
Payment Links
Checkout
Web Elements
Pagamentos no aplicativo
Cenários de pagamento
Gerenciar várias moedas
Fluxos de pagamento personalizados
Aquisição flexível
Orquestração
Pagamentos presenciais
Terminal
Muito mais que pagamentos
Abra sua empresa
Cripto
Comércio agêntico
Financial Connections
Climate
Entenda as fraudes
Proteção contra fraudes do Radar
Gerenciar contestações
Verificar identidades
Página inicialPagamentosAbout Stripe payments

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 integração de pagamentos personalizada incorporando componentes de IU ao seu site usando o Stripe Elements. Compare esta integração com as outras formas de integração da Stripe.

O código do lado do cliente e do lado do servidor cria um formulário de checkout que aceita várias formas de pagamento.

Localização do cliente
Tamanho
Tema
Layout
Para ver como o Link funciona para um usuário recorrente, digite o e-mail demo@stripe.com. Para ver como o Link funciona durante um novo cadastro, insira qualquer outro e-mail e preencha o restante do formulário. Esta demonstração só exibe o Google Pay ou Apple Pay se você tiver um cartão ativo com qualquer uma das carteiras.

Esforço de integração

API

Tipo de integração

Combine componentes de IU em um fluxo de pagamento personalizado

Personalização da IU

Personalização em nível de CSS com a API Appearance

Você tem interesse em usar o Stripe Tax, descontos, envio ou conversão de moedas?

A Stripe tem uma integração do Payment Element que gerencia tributos, descontos, envio e conversão de moedas para você. Consulte criando uma página de checkout para saber mais.

Configurar a Stripe
Lado do servidor

Primeiro, crie uma conta Stripe ou entre.

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 um PaymentIntent
Lado do servidor

Observação

Se quiser renderizar o Payment Element antes de criar um PaymentIntent, consulte Coletar detalhes do pagamento antes de criar um Intent.

O objeto PaymentIntent representa sua intenção de recolher o pagamento de um cliente e rastreia tentativas de cobrança e alterações de estado ao longo do processo de pagamento.

Criar o PaymentIntent

Crie um PaymentIntent no servidor com um valor e uma moeda. Na versão mais recente da API, especificar o parâmetro automatic_payment_methods é opcional porque a Stripe habilita sua funcionalidade por padrão. Você pode gerenciar formas de pagamento no Dashboard. A Stripe processa a devolução de formas de pagamento qualificadas com base em fatores como valor, moeda e fluxo de pagamento da transação.

A Stripe usa suas configurações de formas de pagamento para exibir as formas de pagamento que você habilitou. 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. Para sobrepor formas de pagamento, liste manualmente as que você gostaria de ativar usando o atributo payment_method_types.

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 "automatic_payment_methods[enabled]"=true

Observação

Sempre decida o valor a ser cobrado no lado do servidor, um ambiente confiável, e não no lado do cliente. Isso evita que clientes mal-intencionados escolham os próprios preços.

Recuperar o segredo do cliente

O PaymentIntent inclui um segredo do cliente que o lado do cliente usa para concluir com segurança o processo de pagamento. Você pode usar abordagens diferentes para enviar a senha do cliente ao lado do cliente.

Recupere o segredo do cliente de um endpoint do servidor usando a função fetch do navegador. Essa abordagem é melhor quando o lado do cliente é um aplicativo com uma única página, principalmente se criado com uma estrutura de front-end moderna como o React. Crie o endpoint do servidor que envia o segredo do cliente:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Em seguida, obtenha o segredo do cliente com JavaScript no lado do cliente:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Coletar dados de pagamento
Lado 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.

O Payment Element contém um iframe que envia com segurança os dados de pagamento à Stripe por uma conexão HTTPS. Evite colocar o Payment Element dentro de outro iframe porque algumas formas de pagamento exigem redirecionamento para outra página para confirmação do pagamento.

Se você optar por usar um iframe e quiser aceitar Apple Pay ou Google Pay, o iframe deve ter o atributo de permissão definido como "payment *".

O endereço da página de checkout deve começar com https:// em vez de http:// para que sua integração funcione. Você pode testar a integração sem usar HTTPS, mas lembre-se de habilitar HTTPS quando estiver pronto para aceitar pagamentos em tempo real.

Configurar o Stripe.js

O Payment Element está automaticamente disponível como um recurso do Stripe.js. Inclua o script Stripe.js em sua página de checkout adicionando-o ao head do arquivo HTML. Sempre carregue Stripe.js diretamente de js.stripe.com para manter a conformidade com PCI. Não inclua o script em um pacote nem hospede pessoalmente uma cópia dele.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Crie uma instância de Stripe com o seguinte JavaScript em sua página de checkout:

checkout.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Adicione o Element Pagamento à sua página de pagamentos

O Payment Element precisa de um lugar para residir na sua página de pagamentos. Crie um node DOM vazio (contêiner) com um ID único no seu formulário de pagamento:

checkout.html
<form id="payment-form"> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <button id="submit">Submit</button> <div id="error-message"> <!-- Display error message to your customers here --> </div> </form>

Quando o formulário anterior for carregado, crie uma instância do Payment Element e monte-a no nó DOM do contêiner. Passe o segredo do cliente da etapa anterior em options quando criar a instância do Elements:

Administre cuidadosamente o segredo do cliente, pois ele pode finalizar a cobrança. Não registre em log, incorpore em URLs nem exponha esse segredo a ninguém, exceto para o próprio cliente.

checkout.js
const options = { clientSecret: '{{CLIENT_SECRET}}', // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret obtained in a previous step const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Navegar pelo Stripe Elements

O Stripe Elements é uma coleção de componentes drop-in de IU. Para personalizar ainda mais o formulário ou coletar outros dados do cliente, consulte a documentação do Elements.

O Payment Element renderiza um formulário dinâmico que permite ao cliente escolher uma forma de pagamento. Para cada forma de pagamento, o formulário solicita automaticamente que o cliente preencha todos os dados de pagamento necessários.

Personalizar a aparência

Personalize o Payment Element para corresponder ao design do seu site, passando o objeto appearance para options ao criar o provedor do Elements.

Solicitar endereços

Por padrão, o Payment Element coleta apenas os detalhes necessários do endereço de cobrança. Para coletar o endereço de cobrança completo (por exemplo, para calcular o imposto para mercadorias e serviços digitais) ou o endereço de entrega de um cliente, use o Address Element.

Solicitar token de comerciante do Apple Pay

Se tiver configurado sua integração para aceitar pagamentos Apple Pay, recomendamos configurar a interface do Apple Pay para retornar um token de comerciante que habilite transações iniciadas por comerciante (MIT). Solicite o tipo de token de comerciante pertinente no Payment Element.

OpcionalSalvar e recuperar formas de pagamento do cliente

Você pode configurar o Payment Element para salvar as formas de pagamento do seu cliente para uso futuro. Esta seção mostra como integrar o recurso de formas de pagamento salvas, que permite que o Payment Element:

  • Solicitar consentimento dos compradores para salvar uma forma de pagamento
  • Salvar formas de pagamento quando os compradores derem consentimento
  • Exibir formas de pagamento salvas aos compradores para compras futuras
  • Atualize automaticamente cartões perdidos ou vencidos quando são substituídos pelos compradores
O Payment Element e uma caixa de seleção forma de pagamento salva

Salve formas de pagamento.

O Payment Element com uma forma de pagamento salva selecionada

Reutilize uma forma de pagamento salva anteriormente.

Habilite o salvamento da forma de pagamento no Payment Element

Ao criar uma PaymentIntent no servidor, crie também uma CustomerSession informando o ID do cliente e habilitando o componente payment_element na sessão. Configure quais recursos de forma de pagamento salva você deseja habilitar. Por exemplo, habilitar payment_method_save exibe uma caixa de seleção e permite que os clientes salvem os dados de pagamento para uso futuro.

Você pode especificar setup_future_usage em um PaymentIntent ou sessão do Checkout para substituir o comportamento padrão de salvar formas de pagamento. Isso garante que você salve automaticamente a forma de pagamento para uso futuro, mesmo que o cliente não opte por salvá-la explicitamente.

Cuidado

Se você permitir que os compradores removam formas de pagamento salvas habilitando payment_method_remove, isso afetará as assinaturas que dependem dessa forma de pagamento. A remoção da forma de pagamento desvincula o PaymentMethod desse Cliente.

server.rb
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
# 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-intent-and-customer-session' do intent = Stripe::PaymentIntent.create({ amount: 1099, currency: 'usd', # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. automatic_payment_methods: {enabled: true}, customer:
{{CUSTOMER_ID}}
, }) customer_session = Stripe::CustomerSession.create({ customer:
{{CUSTOMER_ID}}
, components: { payment_element: { enabled: true, features: { payment_method_redisplay: 'enabled', payment_method_save: 'enabled', payment_method_save_usage: 'off_session', payment_method_remove: 'enabled', }, }, }, }) { client_secret: intent.client_secret, customer_session_client_secret: customer_session.client_secret }.to_json end

Sua instância do Elements usa o segredo do cliente da CustomerSession para acessar as formas de pagamento salvas desse cliente. Gerencie erros corretamente ao criar a CustomerSession. Se ocorrer um erro, você não precisará fornecer o segredo do cliente da CustomerSession para a instância do Elements, pois é opcional.

Crie a instância do Elements usando os segredos do cliente para PaymentIntent e CustomerSession. Em seguida, use essa instância do Elements para criar um Payment Element.

checkout.js
// Create the CustomerSession and obtain its clientSecret const res = await fetch("/create-intent-and-customer-session", { method: "POST" }); const { customer_session_client_secret: customerSessionClientSecret } = await res.json(); const elementsOptions = { clientSecret: '{{CLIENT_SECRET}}', customerSessionClientSecret, // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret // and CustomerSession's client secret obtained in a previous step const elements = stripe.elements(elementsOptions); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Quando você confirma o PaymentIntent, o Stripe.js controla automaticamente a definição de setup_future_usage no PaymentIntent e allow_redisplay no PaymentMethod, dependendo de o cliente ter marcado a caixa para salvar os dados de pagamento.

Impor nova coleta de CVC

Opcionalmente, especifique require_cvc_recollection ao criar o PaymentIntent para impor coleta de CVC quando um cliente estiver pagando com cartão.

Detectar a seleção de uma forma de pagamento salva

Para controlar o conteúdo dinâmico quando uma forma de pagamento salva é selecionada, ouça o evento change do Payment Element, que é preenchido com a forma de pagamento selecionada.

checkout.js
paymentElement.on('change', function(event) { if (event.value.payment_method) { // Control dynamic content if a saved payment method is selected } })

OpcionalLink na sua página de checkout
Lado do cliente

Permita que seu cliente faça checkout mais rápido usando o Link no Payment Element. Você pode preencher automaticamente os dados de qualquer cliente que use o Link, mesmo que ele não tenha salvo os dados no Link em outra empresa. A integração padrão do Payment Element inclui uma solicitação do Link no formulário do cartão. Para gerenciar o Link no Payment Element, acesse as configurações de forma de pagamento.

Autentique ou inscreva-se no Link diretamente no Payment Element durante o checkout

Coletar um endereço de e-mail do cliente para autenticação ou inscrição no Link

Opções de integração

Há duas formas de integrar o Link com o Payment Element. A Stripe recomenda passar um endereço de e-mail do cliente para o Payment Element, se disponível. Para escolher uma das opções, lembre-se de considerar o funcionamento do fluxo de checkout:

Opção de integraçãoFluxo de checkoutDescrição
Passar um endereço de e-mail do cliente para o Payment Element Recommended
  • Seu cliente insere o endereço de e-mail antes de chegar à página de checkout (em uma etapa anterior de criação de conta, por exemplo).
  • Você prefere usar seu próprio campo de entrada de e-mail.
Passe programaticamente o endereço de e-mail de um cliente para o Payment Element. Nesse cenário, um cliente se autentica no Link diretamente no formulário de pagamento, em vez de em um componente de IU separado.
Coletar o endereço de e-mail de um cliente no Payment ElementSeus clientes inserem o e-mail e se autenticam ou se inscrevem no Link diretamente no Payment Element durante o checkout.Se um cliente não se inscreveu no Link e escolhe uma forma de pagamento aceita no Payment Element, ele é solicitado a salvar seus dados usando o Link. Para aqueles que já se inscreveram, o Link preenche automaticamente os dados de pagamento.

OpcionalObter atualizações do servidor
Lado do cliente

Você pode atualizar atributos no PaymentIntent após a renderização do Payment Element, como o valor (por exemplo, códigos de desconto ou custos de envio). Você pode atualizar o PaymentIntent no servidor e chamar elements.fetchUpdates para ver o novo valor refletido no Payment Element. Este exemplo mostra como criar o endpoint do servidor que atualiza o valor na PaymentIntent:

main.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
get '/update' do intent = Stripe::PaymentIntent.update( '{{PAYMENT_INTENT_ID}}', {amount: 1499}, ) {status: intent.status}.to_json end

Este exemplo demonstra como atualizar a IU para refletir as alterações no lado do cliente:

(async () => { const response = await fetch('/update'); if (response.status === 'requires_payment_method') { const {error} = await elements.fetchUpdates(); } })();

Enviar o pagamento para a Stripe
Lado do cliente

Use stripe.confirmPayment para concluir o pagamento utilizando os detalhes do Payment Element. Forneça um return_url a essa função para indicar para onde a Stripe deve redirecionar o usuário após a conclusão do pagamento. Seu usuário pode ser redirecionado primeiro para um site intermediário, como uma página de autorização bancária, antes de ser redirecionado para o return_url. Os pagamentos com cartão são redirecionados imediatamente para o return_url quando um pagamento é finalizado.

Se não quiser redirecionar pagamentos com cartão após a conclusão do pagamento, defina redirecionar como if_required. Isso somente redireciona os clientes que fazem checkout com formas de pagamento baseadas em redirecionamento.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Verifique se o return_url corresponde a uma página no seu site que fornece o status do pagamento. Quando a Stripe redireciona o cliente para o return_url, nós fornecemos os seguintes parâmetros de consulta de URL:

ParâmetroDescrição
payment_intentO identificador único do PaymentIntent.
payment_intent_client_secretO segredo do cliente do objeto PaymentIntent.

Cuidado

Se você tiver ferramentas que rastreiam a sessão do cliente no navegador, pode ser necessário adicionar o domínio stripe.com à lista de exclusão de referenciadores. Os redirecionamentos fazem com que algumas ferramentas criem novas sessões, o que impede que você rastreie a sessão completa.

Use um dos parâmetros de consulta para recuperar o PaymentIntent. Inspecione o status do PaymentIntent para decidir o que mostrar aos clientes. Você também pode anexar seus próprios parâmetros de consulta ao fornecer o return_url, que persiste durante o processo de redirecionamento.

status.js
// Initialize Stripe.js using your publishable key const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Retrieve the "payment_intent_client_secret" query parameter appended to // your return_url by Stripe.js const clientSecret = new URLSearchParams(window.location.search).get( 'payment_intent_client_secret' ); // Retrieve the PaymentIntent stripe.retrievePaymentIntent(clientSecret).then(({paymentIntent}) => { const message = document.querySelector('#message') // Inspect the PaymentIntent `status` to indicate the status of the payment // to your customer. // // Some payment methods will [immediately succeed or fail][0] upon // confirmation, while others will first enter a `processing` state. // // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification switch (paymentIntent.status) { case 'succeeded': message.innerText = 'Success! Payment received.'; break; case 'processing': message.innerText = "Payment processing. We'll update you when payment is received."; break; case 'requires_payment_method': message.innerText = 'Payment failed. Please try another payment method.'; // Redirect your user back to your payment page to attempt collecting // payment again break; default: message.innerText = 'Something went wrong.'; break; } });

Processar eventos pós-pagamento
Lado do servidor

Stripe envia um evento payment_intent.succeeded quando o pagamento é concluído. Use a ferramenta Dashboard webhook ou siga o guia de webhooks para receber esses eventos e executar ações, como enviar um e-mail de confirmação do pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de trabalho de envio.

Escute esses eventos em vez de aguardar um retorno de chamada do cliente. No cliente, o consumidor pode fechar a janela do navegador ou sair do aplicativo antes da execução do retorno de chamada, o que permite que clientes mal-intencionados manipulem a resposta. Configurar sua integração para escutar eventos assíncronos é o que permite a você aceitar diferentes tipos de formas de pagamento com uma única integração.

Além de gerenciar o evento payment_intent.succeeded, recomendamos gerenciar esses outros eventos ao coletar pagamentos com o Element Pagamento:

EventoDescriçãoAção
payment_intent.succeededEnviado quando um cliente conclui um pagamento com êxito.Envie ao cliente uma confirmação de pedido e processe o pedido.
payment_intent.processingEnviado quando um cliente inicia um pagamento, mas o pagamento ainda precisa ser concluído. Esse evento costuma ser enviado quando um cliente inicia um débito bancário. Ele é seguido por um evento payment_intent.succeeded ou payment_intent.payment_failed no futuro.Envie ao cliente uma confirmação do pedido que indica que o pagamento está pendente. Para produtos digitais, pode ser necessário executar o pedido antes de aguardar a conclusão do pagamento.
payment_intent.payment_failedEnviado quando um cliente tenta fazer um pagamento, mas o pagamento falha.Se um pagamento passa de processing para payment_failed, ofereça ao cliente outra tentativa para pagar.

Teste sua integração

Para testar sua integração de pagamentos personalizada:

  1. Crie um Payment Intent e recupere o segredo do cliente.
  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. Envie o pagamento para a Stripe. Você será redirecionado para return_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 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.

OpcionalAdicionar formas de pagamento

O Payment Element aceita várias formas de pagamento por padrão. Você precisa executar etapas adicionais e exibir algumas formas de pagamento.

Affirm

Para começar a usar o Affirm, você deve habilitá-lo no Dashboard. Quando você cria um PaymentIntent com a forma de pagamento Affirm, é preciso incluir um endereço de entrega. Este exemplo sugere passar as informações de envio no cliente depois que ele seleciona a forma de pagamento. Saiba mais sobre como usar o Affirm com a Stripe.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://my-site.com/order/123/complete', shipping: { name: 'Jenny Rosen', address: { line1: '1 Street', city: 'Seattle', state: 'WA', postal_code: '95123', country: 'US', }, }, }, }); if (error) { // This point is reached if there's an immediate error when // confirming the payment. Show error to your customer (e.g., payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer is redirected to your `return_url`. For some payment // methods like iDEAL, your customer is redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Testar Affirm

Saiba como testar diferentes cenários usando a tabela a seguir:

CenárioComo testar
Seu cliente paga com o Affirm.Preencha o formulário (não deixe de incluir um endereço de entrega) e autentique o pagamento.
Seu cliente não faz a autenticação na página de redirecionamento do Affirm.Preencha o formulário e clique em Falhar pagamento de teste na página de redirecionamento.

Afterpay (Clearpay)

Quando você cria um PaymentIntent com a forma de pagamento Affirm, é necessário incluir um endereço de entrega. Saiba mais sobre como usar o Afterpay com a Stripe.

Você pode gerenciar formas de pagamento no Dashboard. A Stripe processa a devolução de formas de pagamento qualificadas com base em fatores como valor, moeda e fluxo de pagamento da transação. O exemplo abaixo usa o atributo automatic_payment_methods, mas você pode listar afterpay_clearpay com tipos de forma de pagamento. Na versão mais recente da API, especificar o parâmetro automatic_payment_methods é opcional porque a Stripe habilita sua funcionalidade por padrão. Qualquer que seja a opção escolhida, ative o Afterpay Clearpay no Dashboard.

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 "automatic_payment_methods[enabled]"=true \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="1234 Main Street" \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"=CA \ -d "shipping[address][country]"=US \ -d "shipping[address][postal_code]"=94111

Teste Afterpay (Clearpay)

Saiba como testar diferentes cenários usando a tabela a seguir:

CenárioComo testar
Seu cliente paga com o Afterpay.Preencha o formulário (não deixe de incluir um endereço de entrega) e autentique o pagamento.
Seu cliente não faz a autenticação na página de redirecionamento do Afterpay.Preencha o formulário e clique em Falhar pagamento de teste na página de redirecionamento.

Apple Pay e Google Pay

Quando você habilita pagamentos com cartão, exibimos o Apple Pay e o Google Pay para clientes cujo ambiente cumpre as condições para apresentação de carteira digital. Para aceitar pagamentos dessas carteiras, você também precisa:

  • Habilitá-las nas configurações de formas de pagamento. O Apple Pay é habilitado por padrão.
  • Opere seu aplicativo por HTTPS em desenvolvimento e produção.
  • Registre seu domínio.
  • Obter atualizações do servidor se você atualizar o valor de um PaymentIntent para manter a sincronia do modal de pagamento da carteira.

Testes regionais
Índia

O Stripe Elements não aceita o Google Pay ou Apple Pay para contas e clientes da Stripe na Índia. Portanto, não é possível testar sua integração do Google Pay ou Apple Pay se o endereço IP do testador estiver na Índia, mesmo que a conta Stripe esteja localizada fora da Índia.

Saiba como usar Apple Pay e Google Pay com a Stripe.

Débito automático ACH

Para usar o Payment Element com a forma de pagamento Débito automático ACH, siga estas instruções:

  1. Crie um objeto Customer.

    Command Line
    cURL
    Stripe CLI
    Ruby
    Python
    PHP
    Java
    Node.js
    Go
    .NET
    No results
    curl -X POST https://api.stripe.com/v1/customers \ -u "
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :"
  2. Especifique o ID do cliente ao criar o 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 setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]"=us_bank_account
  3. Selecione um método de verificação.

Ao usar a forma de pagamento débito automático ACH com o Payment Element, você só pode selecionar automatic ou instant.

Saiba mais sobre como usar o débito automático ACH com a Stripe.

Testar débito automático ACH

CenárioComo testar
Seu cliente paga com uma conta bancária dos EUA usando verificação instantânea.Selecione Conta bancária dos EUA e preencha o formulário. Clique na instituição de teste. Siga as instruções do modal para vincular sua conta bancária. Clique no botão do pagamento.
Seu cliente paga com uma conta bancária dos EUA usando microdepósitos.Selecione Conta bancária dos EUA e preencha o formulário. Clique em Inserir os dados bancários manualmente. Siga as instruções do modal para vincular sua conta bancária. Você pode usar estes números de conta de teste. Clique no botão do pagamento.
Seu cliente não conclui o processo de vinculação de conta bancária.Selecione Conta bancária dos EUA e clique na instituição de teste ou em Inserir os dados bancários manualmente. Feche o modal sem preenchê-lo.

BLIK

Ao usar o Payment Element com BLIK, o usuário pode fechar o modal que solicita autorização para pagamento no aplicativo bancário. Isso aciona um redirecionamento para seu return_url e não retorna o usuário para a página de checkout. Saiba mais sobre como usar o BLIK com a Stripe.

Para gerenciar os usuários fechando o modal, no gerenciador do lado do servidor do seu return_url, inspecione o status do Payment Intent para ver se ele é succeeded ou ainda requires_action (significando que o usuário fechou o modal sem autorização), lidando com cada caso conforme a necessidade.

Formas de pagamento com código QR

Ao usar o Payment Element com uma forma de pagamento que usa código QR (WeChat Pay, PayNow, Pix, PromptPay ou Cash App Pay), o usuário pode fechar o modal de código QR. Isso aciona um redirecionamento para seu return_url e não retorna o usuário para a página de checkout.

Para gerenciar usuários que fecham os modais de código QR, no gerenciador no lado do servidor do seu return_url, inspecione o status do Payment Intent para ver se é succeeded ou se ainda é requires_action (significando que o usuário fechou o modal sem pagar), e trate cada caso conforme for necessário.

Como alternativa, evite o redirecionamento automático para o seu return_url passando o parâmetro opcional avançado redirect=if_required, que evita o redirecionamento quando um modal de código QR é fechado.

Cash App Pay

O Payment Element renderiza um formulário dinâmico de forma diferente na web para desktop ou para dispositivos móveis, pois usa diferentes métodos de autenticação do cliente. Saiba mais sobre como usar o Cash App Pay com a Stripe.

O Cash App Pay é uma forma de pagamento baseada em redirecionamento na web para dispositivos móveis. Ele redireciona seu cliente para o Cash App no modo de produção ou uma página de pagamento de teste em um ambiente de teste. Após a conclusão do pagamento, eles são redirecionados para o return_url, independentemente de você ter definido redirect=if_required ou não.

PayPal

Para usar o PayPal, verifique se você está em um domínio registrado.

Divulgue a Stripe para seus clientes

A Stripe coleta informações sobre interações do cliente com o Elements para fornecer serviços a você, evitar fraudes e melhorar os serviços. Isso inclui o uso de cookies e endereços IP para identificar quais Elements o cliente visualizou durante uma única sessão de checkout. Você é responsável por divulgar e obter todos os direitos e consentimentos necessários para que a Stripe use os dados dessas maneiras. Para saber mais, acesse nossa central de privacidade.

Veja também

  • Stripe Elements
  • Configurar pagamentos futuros
  • Salvar dados de pagamento durante o pagamento
  • Calcule imposto sobre vendas, GST e IVA em seu fluxo de pagamento
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