Aceite um pagamento usando o destination charges
Use destination charges para aceitar pagamentos
Crie destination charges quando os clientes fizerem transações com sua plataforma referente a produtos ou serviços fornecidos por suas contas conectadas e você transferir fundos imediatamente para suas contas conectadas. Com este tipo de cobrança:
- Você cria uma cobrança na conta da sua plataforma.
- Você determina se alguns ou todos os fundos são transferidos para a conta conectada.
- Você é o merchant of record, e o saldo de sua conta é debitado pelos custos das tarifas, reembolsos e estornos da Stripe.
Com algumas exceções, se a sua plataforma e uma conta conectada não estiverem na mesma região, você deverá especificar a conta conectada como o comerciante de liquidação usando o parâmetro on_behalf_of no Payment Intent.
Este guia mostra como criar uma Checkout Session hospedada pela Stripe. Ou, você pode usar o Stripe Elements ou a API.
Criar uma sessão do CheckoutLado do servidor
Uma Checkout Session controla o que o seu cliente vê no formulário de pagamento, como itens de linha, o valor e a moeda do pedido, bem como formas de pagamento aceitáveis. Adicione um botão de checkout ao seu site para chamar um endpoint do lado do servidor e criar uma Sessão do Checkout.
No seu servidor, crie uma sessão do Checkout e redirecione o cliente para o URL retornado na resposta.
| Parâmetro | Valor | Obrigatório? | Descrição |
|---|---|---|---|
| payment_intent_data[transfer_data] | destination | Sim | Indica que se trata de uma Destination Charges. Uma Destination Charges significa que a cobrança é processada na plataforma e, em seguida, os fundos são transferidos de forma imediata e automática para o saldo pendente da conta conectada. |
| line_items | Uma lista de até 100 itens | Sim | Os itens que o cliente está comprando. Os itens são exibidos no formulário de pagamento integrado. |
| success_url | um URL válido | Sim | The URL where the customer is redirected after they complete a payment. Use the value of {CHECKOUT_ to retrieve the Checkout Session and inspect its status to decide what to show your customer. You can also append custom query parameters, which persist through the redirect process. |
| payment_intent_data[application_fee_amount] | uma quantia de dinheiro | Obrigatório para Connect | O valor que sua plataforma planeja deduzir da transação. O valor total cobrado é imediatamente transferido da plataforma para a conta conectada especificada por transfer_ após a cobrança ser capturada. O application_ é então transferido de volta para a plataforma, e a tarifa da Stripe é deduzida do valor da plataforma. |
trate eventos de pós-pagamento para destination chargesLado do servidor
A Stripe envia um evento checkout.session.completed quando o pagamento é concluído. Use um webhook para receber esses eventos e executar ações, como enviar um e-mail de confirmação de pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de entrega.
Escute esses eventos em vez de aguardar um retorno de chamada do cliente. No cliente, o consumidor poderia fechar a janela do navegador ou sair do aplicativo antes da execução do retorno de chamada. Algumas formas de pagamento também demoram de 2 a 14 dias para a confirmação do pagamento. 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.
Trate os seguintes eventos ao coletar pagamentos com o Checkout:
| Evento | Descrição | Próximas etapas |
|---|---|---|
| checkout.session.completed | O cliente autorizou o pagamento enviando o formulário do Checkout. | Aguarde a confirmação ou falha do pagamento. |
| checkout.session.async_payment_succeeded | O pagamento do cliente foi confirmado. | Execute o pedido de mercadorias ou serviços. |
| checkout.session.async_payment_failed | O pagamento foi recusado ou houve outro erro. | Entre em contato com o cliente por e-mail e solicite a realização de um novo pedido. |
Todos esses eventos incluem o objeto Checkout Session. Após o pagamento, o status subjacente do PaymentIntent muda de processing para succeeded ou um status malsucedido.
Próximas etapas
Em seguida, saiba como cobrar taxas de inscrição das suas contas conectadas.