Crie cobranças diretas
Crie cobranças diretamente na conta conectada e receba tarifas.
Crie cobranças diretas quando os clientes fazem transações diretamente com uma conta conectada e muitas vezes nem percebem a existência da sua plataforma. Com cobranças diretas:
- O pagamento aparece como cobrança na conta conectada, e não na conta da sua plataforma.
- O saldo da conta conectada aumenta a cada cobrança.
- O saldo da sua conta aumenta com as tarifas da plataforma de cada cobrança.
Esse tipo de cobrança é mais adequado para plataformas que fornecem software como serviço. A Shopify, por exemplo, oferece ferramentas para a criação de lojas online e a Worksify permite que professores vendam cursos online.
Observação
Recomendamos usar cobranças diretas para contas conectadas que têm acesso ao Stripe Dashboard completo.

Integre a IU de pagamento pré-criada da Stripe no checkout do seu aplicativo iOS com a classe PaymentSheet. Veja nosso exemplo de integração no GitHub.
Configurar a StripeLado do servidorLado do cliente
Primeiro, você precisa de uma conta Stripe. Cadastre-se agora.
Lado do servidor
Esta integração exige que os endpoints do seu servidor se comuniquem com a API da Stripe. Use nossas bibliotecas oficiais para acessar a API da Stripe pelo seu servidor:
Lado do cliente
O SDK da Stripe para iOS é de código aberto, totalmente documentado e compatível com aplicativos que aceitam iOS 13 ou versões mais recentes.
Observação
Para obter mais informações sobre a versão mais recente e as versões anteriores do SDK, consulte a página Lançamentos no GitHub. Para receber notificações quando um novo lançamento for publicado, assista aos lançamentos do repositório.
Configure o SDK com sua chave publicável da Stripe na inicialização do aplicativo. Isso permite que seu aplicativo faça solicitações à API da Stripe .
Observação
Use suas chaves de teste enquanto testa e desenvolve, e suas chaves de modo de produção quando publicar seu aplicativo.
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.
Integrar a descrição da compraLado do cliente
Para exibir o Payment Element para dispositivos móveis na tela de checkout, não se esqueça de:
- Mostrar os produtos que o cliente está comprando e o valor total
- Usar o Address Element para coletar todos os dados de envio necessários do cliente
- Adicionar um botão de checkout para exibir a IU da Stripe
Se PaymentSheetResult
for .
, informe ao usuário (por exemplo, exibindo uma tela de confirmação de pedido).
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.
Configurar um URL de retornoLado do cliente
O cliente pode sair do seu aplicativo para autenticar (por exemplo, no Safari ou no aplicativo bancário). Para permitir que eles voltem ao seu aplicativo após a autenticação, configure um esquema de URL personalizado e configure seu aplicativo delegado para encaminhar o URL ao SDK. A Stripe não aceita links universais.
Gerenciar 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.
Coletar tarifas
Quando um pagamento é processado, sua plataforma pode receber uma parte da transação na forma de tarifas da plataforma. Você pode definir os preços da tarifa da plataforma de duas maneiras:
- Use a ferramenta de preços da plataforma para definir e testar regras de preços. No momento, esse recurso no-code no Stripe Dashboard só está disponível para plataformas responsáveis pelo pagamento das tarifas da Stripe.
- Defina internamente as regras de preços, especificando as tarifas da plataforma diretamente em um PaymentIntent. As tarifas definidas com esse método substituem a lógica de preços especificada na ferramenta de preços da plataforma.
Sua plataforma pode cobrar uma tarifa da plataforma com as seguintes limitações:
- O valor de
application_
deve ser positivo e menor que o valor da cobrança. A tarifa da plataforma cobrada é limitada ao valor capturado da cobrança.fee_ amount - Não há tarifas adicionais da Stripe sobre a própria tarifa da plataforma.
- De acordo com os requisitos regulatórios e de conformidade do Brasil, as plataformas de fora do Brasil com contas conectadas brasileiras não podem coletar tarifas da plataforma por meio da Stripe.
- A moeda de
application_
depende de alguns fatores de várias moedas.fee_ amount
A transação de saldo da cobrança resultante inclui um detalhamento das tarifas da Stripe e da plataforma. Para melhorar a experiência com os relatórios, é criado um objeto Application Fee após a coleta da tarifa. Use a propriedade amount
no objeto de tarifa do aplicativo para criar relatórios. Você pode acessar esses objetos com o endpoint Application Fees.
As tarifas da plataforma recebidas são adicionadas ao saldo disponível da sua conta no mesmo cronograma que os fundos das cobranças regulares da Stripe. Você pode consultá-las na seção Tarifas cobradas do Dashboard.
Cuidado
Por padrão, as tarifas da plataforma para cobranças diretas são criadas de forma assíncrona. Se você expandir o objeto application_
em uma solicitação de criação de cobrança, a tarifa da plataforma será criada de forma síncrona como parte dessa solicitação. Somente expanda o objeto application_
se for necessário, pois isso aumenta a latência da solicitação.
Para acessar os objetos de tarifa da plataforma para tarifas da plataforma criadas de forma assíncrona, escute o evento de webhook application_fee.created.
Fluxo de fundos com tarifas
Quando você especifica uma tarifa de plataforma sobre uma cobrança, o valor da tarifa é transferido para a conta da sua plataforma na Stripe. Ao processar uma cobrança diretamente na conta conectada, o valor da cobrança (menos as tarifas da Stripe e da plataforma) é depositado na conta conectada.
Por exemplo, se você fizer uma cobrança de US$ 10 com uma tarifa da plataforma de US$ 1,23 (como no exemplo anterior), US$ 1,23 será transferido para a conta da sua plataforma. US$ 8,18 (US$ 10 - US$ 0,59 - US$ 1,23) são depositados na conta conectada (considerando as tarifas padrão da Stripe dos EUA).

Se você processa pagamentos em várias moedas, veja como as moedas são gerenciadas no Connect.
Emitir reembolsos
Além de criar cobranças em contas conectadas, as plataformas também podem criar reembolsos de cobranças em contas conectadas. Crie um reembolso usando a chave secreta da sua plataforma, estando autenticado com as credenciais da conta conectada.
As tarifas da plataforma não são reembolsadas automaticamente quando um reembolso é emitido. Sua plataforma deve reembolsar explicitamente a tarifa da plataforma, caso contrário a conta conectada (a conta na qual a cobrança foi criada) perde esse valor. Você pode reembolsar uma tarifa de plataforma passando um valor refund_
de verdadeiro na solicitação de reembolso:
Por padrão, toda a cobrança é reembolsada, mas você pode criar um reembolso parcial definindo um amount
como um número inteiro positivo. Se o reembolso for ao valor total da cobrança, toda a tarifa da plataforma será reembolsada. Caso contrário, um valor proporcional da tarifa da plataforma será reembolsado. Como opção, você pode informar um valor refund_
de falso e reembolsar a tarifa da plataforma separadamente.