Aceitar uma transferência bancária
Use a API Payment Intents para aceitar pagamentos por transferência bancária.
Na primeira vez em que você aceita um pagamento por transferência bancária de um cliente, a Stripe gera uma conta bancária virtual para o cliente, que pode ser compartilhada diretamente com ele. Todos os pagamentos futuros por transferência bancária deste cliente são enviados para essa conta bancária. Em alguns países, a Stripe também fornece um número de referência de transferência exclusivo que seu cliente deve incluir em cada transferência para facilitar a correspondência entre a transferência e os pagamentos pendentes. Alguns países têm limites para a quantidade de números de contas bancárias virtuais que você pode criar gratuitamente.
Você encontra uma visão geral das etapas comuns ao aceitar um pagamento por transferência bancária no seguinte diagrama de sequência:
Gerenciar pagamentos a menor e a maior
Com pagamentos por transferência bancária, é possível que o cliente envie a você mais ou menos do que o valor do pagamento esperado. Se o cliente enviar muito pouco, a Stripe financiará parcialmente um Payment Intent em aberto. As faturas não são parcialmente financiadas e permanecem abertas até que os fundos recebidos cubram o valor total da fatura.
Se o cliente enviar mais do que o esperado, a Stripe tentará reconciliar os fundos recebidos com um pagamento em aberto e manter o valor em excesso restante no saldo em dinheiro do cliente. Você encontra mais detalhes sobre como a Stripe gerencia a reconciliação na seção de reconciliação da nossa documentação.
Gerenciar vários pagamentos ou faturas em aberto
Você pode ter vários pagamentos ou faturas em aberto que podem ser pagos com transferência bancária. Na configuração padrão, a Stripe tenta reconciliar automaticamente a transferência bancária usando informações como o código de referência da transferência ou o valor transferido.
Você mesmo pode desativar a reconciliação automática e reconciliar manualmente pagamentos e faturas. É possível sobrepor o comportamento de reconciliação automática por cliente, definindo o modo de reconciliação como manual.
Cuidado
A Stripe apresenta automaticamente as opções de forma de pagamento aos clientes avaliando a moeda, as restrições de forma de pagamento e outros parâmetros deles. Recomendamos que você configure suas formas de pagamento no Stripe Dashboard seguindo as instruções em Aceitar um pagamento.
Se quiser continuar configurando manualmente as formas de pagamento apresentadas aos clientes com o Checkout, use este guia. Caso contrário, atualize sua integração para configurar formas de pagamento no Dashboard.
A transferência bancária é uma forma de pagamento de uso único para o Checkout, em que os clientes pagam com uma transferência bancária usando as instruções de pagamento apresentadas. Quando seleciona a opção de pagar, o usuário é redirecionado para uma página hospedada que exibe instruções de transferência bancária e o status do pagamento por transferência.
A transferência bancária também é uma forma de pagamento postergada, o que significa que os fundos não ficam imediatamente disponíveis após o pagamento.
Cuidado
Transferências bancárias não estão disponíveis em sessões do Checkout que não incluíram um objeto Customer existente na solicitação de criação da sessão.
Verificar a compatibilidade
Uma sessão do Checkout precisa cumprir todas as seguintes condições para apoiar pagamentos Bank Transfer:
Os preços de todos os produtos incluídos no checkout precisam estar na mesma moeda. Se você tiver produtos em moedas diferentes, crie sessões do Checkout separadas para cada moeda.
Você só pode usar itens de linha avulsos (Sessões do Checkout de transferência bancária não aceitam planos de assinatura recorrentes).
Aceitar um pagamento
Observação
Crie uma integração para aceitar um pagamento com o Checkout antes de usar este guia.
Use este guia para habilitar Bank Transfer.
Crie ou recupere um Customer
É necessário associar um objeto Customer para reconciliar o pagamento de cada transferência bancária. Se você já tem um objeto Customer, ignore esta etapa. Caso contrário, crie um objeto Customer.
Habilitar Bank Transfer como forma de pagamento
Ao criar uma sessão do Checkout, é preciso:
- Definir
customer
- Adicionar
customer_
à lista debalance payment_
method_ types - Verifique se todos os
line_
usam a mesma moedaitems
Redirecionar para a página de instruções de transferência bancária hospedada da Stripe
Observação
Ao contrário dos pagamentos com cartão, o cliente nem sempre é redirecionado para o success_url com pagamento por transferência bancária.
Depois de enviar o formulário do Checkout corretamente,
- Se o cliente já tiver um saldo alto o suficiente para cobrir o valor da solicitação, o pagamento é efetivado imediatamente e o cliente é redirecionado para o success_url.
- Se o saldo do cliente não for alto o suficiente para cobrir o valor da solicitação, o cliente é redirecionado para o hosted_instructions_url. A página tem as instruções para guiar o cliente até a conclusão da transferência.
A Stripe permite a personalização de IUs voltadas ao cliente na página Configurações de marca. As seguintes configurações de marca podem ser aplicadas à página de instruções hospedada:
- Ícone: a imagem de sua marca e nome fantasia da empresa
- Cor da marca: usada como cor de fundo
Executar seus pedidos
Como a transferência bancária é uma forma de pagamento de notificação postergada, você precisa usar um método como webhooks para monitorar o status do pagamento e gerenciar o processamento do pedido. Saiba como configurar webhooks e executar pedidos.
Os seguintes eventos são enviados quando há mudança no status do pagamento:
Nome do evento | Descrição | Próximas etapas |
---|---|---|
checkout.session.completed | O cliente enviou com êxito o formulário do Checkout e é redirecionado para hosted_ . | Aguarde o cliente para fazer a transferência bancária. |
checkout.session.async_payment_succeeded | O cliente fez a transferência bancária com êxito. O PaymentIntent muda para succeeded . | Execute o pedido de mercadorias ou serviços do cliente. |
Teste a integração
Teste a integração simulando o recebimento de uma transferência bancária na API, no Dashboard ou usando uma versão beta da Stripe CLI.