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.

Integre a IU de pagamento incorporada da Stripe no checkout do seu aplicativo Android com a classe PaymentSheet.
Configurar a StripeLado do servidorLado do cliente
Primeiro, você precisa de uma conta Stripe. Inscreva-se aqui.
Lado do servidor
Esta integração exige que os endpoints do seu servidor se comuniquem com a API da Stripe. Use as bibliotecas oficiais para acessar a API da Stripe pelo seu servidor:
Lado do cliente
O SDK da Stripe para Android é de código aberto e totalmente documentado.
Para instalar o SDK, adicione stripe-android
ao bloco dependencies
do arquivo app/build.gradle:
Observação
Veja mais informações sobre o último lançamento de SDK e as versões anteriores na página Lançamentos no GitHub. Para receber notificações quando um novo lançamento for publicado, assista aos lançamentos do repositório.
Ativar formas de pagamento
Veja suas configurações de formas de pagamento e habilite as formas de pagamento que deseja aceitar. Você precisa de pelo menos uma forma de pagamento habilitada para criar um PaymentIntent.
Por padrão, a Stripe habilita cartões e outras formas de pagamento predominantes que podem ajudar você a alcançar mais clientes, mas recomendamos ativar outras formas de pagamento que sejam relevantes para sua empresa e seus clientes. Consulte Suporte a formas de pagamento para saber mais sobre os produtos e formas de pagamento aceitos, e nossa página de preços para ver as tarifas.
Adicionar um endpointLado do servidor
Nota
Para exibir o PaymentSheet antes de criar um PaymentIntent, consulte Colete os dados de pagamento antes de criar um Intent.
Esta integração usa três objetos da API da Stripe:
PaymentIntent: A Stripe usa isso para representar sua intenção de coletar o pagamento de um cliente, acompanhando suas tentativas de cobrança e alterações no estado do pagamento durante todo o processo.
(Opcional) Customer: Para configurar uma forma de pagamento para pagamentos futuros, vincule-a a um Customer. Crie um objeto Customer quando o cliente abrir uma conta na sua empresa. Se o cliente pagar como convidado, você pode criar o objeto Customer antes do pagamento e associá-lo à sua representação interna da conta do cliente, mais tarde.
(Opcional) Chave Efêmera de Cliente: as informações sobre o objeto Customer são confidenciais e não podem ser obtidas diretamente por um apliativo. Uma Chave Efêmera concede acesso temporário ao Cliente para o SDK.
Observação
Se você nunca salva cartões para um cliente e não permite que clientes retornando reutilizem cartões salvos, é possível omitir os objetos cliente e Ephemeral Key da sua integração.
Por motivos de segurança, seu aplicativo não pode criar esses objetos. Em vez disso, adicione um endpoint ao seu servidor que:
- Recuperar ou criar um Customer.
- Criar uma chave efêmera para o Customer.
- Cria um PaymentIntent com o valor, a moeda e o cliente. Também é possível incluir opcionalmente o parâmetro
automatic_
. A Stripe habilita sua funcionalidade por padrão na versão mais recente da API.payment_ methods - Retorna o segredo do cliente do Payment Intent, o
secret
da chave efêmera, o id do cliente e sua chave publicável ao aplicativo.
As formas de pagamento mostradas aos clientes durante o processo de checkout também são incluídas no PaymentIntent. Você pode permitir que a Stripe obtenha as formas de pagamento das configurações do Dashboard ou listá-las manualmente. Independentemente da opção escolhida, saiba que a moeda passada no PaymentIntent filtra as formas de pagamento mostradas para o cliente. Por exemplo, se você passar EUR no eur
e a OXXO estiver ativada no Dashboard, a OXXO não será exibida ao cliente porque a OXXO não aceita pagamentos em eur
.
Se sua integração não exige uma opção baseada em código para oferecer formas de pagamento, a Stripe recomenda a opção automática. Isso ocorre porque a Stripe avalia a moeda, as restrições de forma de pagamento e outros parâmetros para determinar a lista de formas de pagamento aceitas. Priorizamos as formas de formas de pagamento que aumentam a conversão e que são mais relevantes para a moeda e a localização do cliente.
Coletar dados de pagamentoLado do cliente
Antes de exibir o Element Pagamento para dispositivos móveis, a página de checkout deve:
- Mostrar os produtos sendo comprados e o valor total
- Colete todas as informações de envio necessárias usando o Address Element
- Incluir um botão de checkout para apresentar a IU da Stripe
Configurar allowsDelayedPaymentMethods
como verdadeiro permite formas de pagamento de notificação assíncrona como contas bancárias dos EUA. Para essas formas de pagamento, o status final do pagamento não é conhecido quando o PaymentSheet
é concluído, sendo efetivado ou não posteriormente. Se você aceitar esses tipos de formas de pagamento, informe o cliente que seu pedido está confirmado e somente processe o pedido (por exemplo, fazendo o envio do produto) quando o pagamento for bem-sucedido.
Processar eventos pós-pagamentoLado 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_
, recomendamos gerenciar esses outros eventos ao coletar pagamentos com o Element Pagamento:
Evento | Descrição | Ação |
---|---|---|
payment_intent.succeeded | Enviado quando um cliente conclui um pagamento com êxito. | Envie ao cliente uma confirmação de pedido e processe o pedido. |
payment_intent.processing | Enviado 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_ ou payment_ 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_failed | Enviado quando um cliente tenta fazer um pagamento, mas o pagamento falha. | Se um pagamento passa de processing para payment_ , ofereça ao cliente outra tentativa para pagar. |
Testar a integração
Consulte Testes para obter mais informações sobre como testar sua integração.
OpcionalHabilitar Link
Habilite o Link nas configurações de forma de pagamento para permitir que seus clientes salvem e reutilizem os dados de pagamento com segurança usando o botão de checkout expresso de um clique do Link.
Passe o e-mail do cliente para o Mobile Payment Element
O Link autentica um cliente usando o endereço de e-mail dele. A Stripe recomenda preencher o máximo possível de dados para agilizar o processo de checkout.
Para preencher o nome, o endereço de e-mail e o número de telefone do cliente, forneça os dados do cliente a defaultBillingDetails
ao inicializar PaymentSheet.
.
OpcionalHabilitar Google Pay
Configurar a integração
Para usar o Google Pay, habilite a API Google Pay adicionando o seguinte à <application>
tag do seu AndroidManifest.xml:
<application> ... <meta-data android:name="com.google.android.gms.wallet.api.enabled" android:value="true" /> </application>
Veja mais detalhes na Configuração da API Google Pay do Google Pay para Android.
Adicionar Google Pay
Para adicionar o Google Pay à sua integração, passe uma PaymentSheet.GooglePayConfiguration com seu ambiente do Google Pay (produção ou teste) e o código do país da sua empresa quando inicializar PaymentSheet.Configuration.
Testar Google Pay
O Google permite que você faça pagamentos de teste por meio do Test Card Suite. O conjunto de testes aceita o uso de cartões de teste da Stripe.
Você pode testar o Google Pay usando um dispositivo Android físico. Verifique se você tem um dispositivo em um país onde o Google Pay é aceito e faça login em uma conta do Google no dispositivo de teste com um cartão real salvo na Google Wallet.
OpcionalHabilitar leitura de cartões
Para ativar a leitura de cartões, adicione stripecardscan
ao bloco dependencies
do arquivo app/build.gradle:
OpcionalAtivar pagamentos por ACH
Para habilitar ACH pagamentos por débito, inclua Financial Connections como uma dependência do seu aplicativo.
O SDK da Stripe para Android é de código aberto e totalmente documentado.
Para instalar o SDK, adicione financial-connections
ao bloco dependencies
do arquivo app/build.gradle:
Observação
Veja mais informações sobre o último lançamento de SDK e as versões anteriores na página Lançamentos no GitHub. Para receber notificações quando um novo lançamento for publicado, assista aos lançamentos do repositório.
OpcionalPersonalizar a descrição
Toda personalização é configurada usando o objeto PaymentSheet.Configuration.
Aparência
Personalize cores, fontes e outros atributos de acordo com a aparência do aplicativo usando a API Appearance.
Layout da forma de pagamento
Configure o layout das formas de pagamento na planilha usando paymentMethodLayout. Você pode exibi-los horizontalmente, verticalmente ou deixar a Stripe otimizar o layout automaticamente.

Coletar endereços de usuários
Colete endereços de entrega ou cobrança locais e internacionais de seus clientes usando o Address Element.
Nome de exibição da empresa
Especifique o nome da empresa exibido para o cliente definindo merchantDisplayName. Por padrão, esse é o nome do seu aplicativo.
Modo escuro
Por padrão, o PaymentSheet
se adapta automaticamente às configurações de aparência do sistema do usuário (modo claro e escuro). É possível alterar isso configurando modo claro ou escuro no seu aplicativo:
Dados de faturamento padrão
Para definir valores padrão para dados de faturamento coletados na descrição da compra, configure a propriedade defaultBillingDetails
. A PaymentSheet
preenche previamente seus campos com os valores que você informou.
Configurar coleta de dados de cobrança
Usar BillingDetailsCollectionConfiguration
para especificar como você deseja coletar dados de cobrança no PaymentSheet.
Você pode coletar o nome, e-mail, número de telefone e endereço do cliente.
Se quiser anexar detalhes de cobrança padrão ao objeto PaymentMethod mesmo quando esses campos não forem coletados na IU, defina billingDetailsCollectionConfiguration.
como true
.
Observação
Consulte seu jurídico sobre as leis que se aplicam à coleta de dados. Só colete números de telefone se precisar deles para a transação.
OpcionalGerenciar logout de usuário
PaymentSheet
armazena alguns dados localmente para lembrar se um usuário usou o Link dentro de um aplicativo. Para limpar o estado interno do PaymentSheet
, chame o método PaymentSheet.
quando o usuário fizer logout.
OpcionalConclua o pagamento em sua IU
Você pode exibir a Payment Sheet apenas para coletar dados da forma de pagamento e concluir o pagamento na IU do aplicativo. Isso é útil quando você tem um botão de compra personalizado ou precisa de mais etapas após a coleta dos dados do pagamento.

Observação
Um exemplo de integração está disponível no nosso GitHub.
- Primeiro, inicialize PaymentSheet.FlowController em vez de
PaymentSheet
usando um dos métodos do Builder.
- Em seguida, chame
configureWithPaymentIntent
com as chaves do objeto Stripe recuperadas do backend e atualize a IU no callback usando getPaymentOption(). Isso contém uma imagem e um rótulo que representam a forma de pagamento selecionada atualmente pelo cliente.
- Em seguida, chame presentPaymentOptions para coletar os detalhes do pagamento. Quando o cliente termina, a descrição da compra é descartada e chama o paymentOptionCallback passado anteriormente em
create
. Implemente essa forma para atualizar a IU com opaymentOption
retornado.
- Por fim, chame confirm para finalizar o pagamento. Quando o cliente termina, a descrição da compra é descartada e chama o paymentResultCallback passado anteriormente em
create
.
Configurar allowsDelayedPaymentMethods
como verdadeiro permite formas de pagamento de notificação assíncrona como contas bancárias dos EUA. Para essas formas de pagamento, o status final do pagamento não é conhecido quando o PaymentSheet
é concluído, sendo efetivado ou não posteriormente. Se você aceitar esses tipos de formas de pagamento, informe o cliente que seu pedido está confirmado e somente processe o pedido (por exemplo, fazendo o envio do produto) quando o pagamento for bem-sucedido.
OpcionalAtivar coleta de CVC na confirmação
As instruções a seguir para coletar novamente o CVC de um cartão salvo durante a confirmação do PaymentIntent presumem que sua integração inclua o seguinte:
- Criação de PaymentIntents antes de coletar dados de pagamento
Atualizar os parâmetros da criação de Intent
Para coletar novamente o CVC ao confirmar o pagamento, inclua require_
durante a criação do PaymentIntent.