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
Ferramentas para desenvolvedores
Visão geral
Comece a usar o Connect
Princípios básicos de integração
Exemplos de integrações
Fazer onboarding de contas
Configurar Dashboards da conta
Receba pagamentos
    Criar uma cobrança
      Cobranças diretas
      Cobranças de destino
      Cobranças e transferências separadas
    Estabelecer descrições para extratos
    Definir MCCs
    Gerenciar várias moedas
    Crie links de pagamentos com o Connect
    Usar o Radar com o Connect
    Contestações no Connect
    Criar assinaturas
    Criar faturas
    Configurações de formas de pagamento múltiplas
    Integre o componente das configurações de forma de pagamento
    Saldo da conta
Repassar para contas
Gerencie sua plataforma do Connect
Informes fiscais para sua plataforma Connect
Trabalhe com tipos de contas conectadas
Página inicialPlataformas e marketplacesAccept paymentsCreate a charge

Crie cobranças de destino

Crie cobranças na conta da sua plataforma, colete tarifas e transfira imediatamente os fundos restantes para suas contas conectadas.

Copiar página

Crie cobranças de destino quando os clientes fizerem transações com sua plataforma para 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.
  • O custo das tarifas da Stripe e de reembolsos ou estornos é debitado da sua conta.

Esse tipo de cobrança é mais ideal para marketplaces como o Airbnb, um marketplace de aluguel residencial, ou a Lyft, um aplicativo de transporte por aplicativo.

Destination Charges só são aceitas se a plataforma e a conta conectada estiverem no mesmo país. Para compatibilidade internacional, você deve especificar o comerciante da liquidação para a conta conectada usando o parâmetro on_behalf_of no Payment Intent ou em outros cenários válidos de transferências internacionais. Recomendamos usar cobranças de destino para contas conectadas que têm acesso ao Dashboard Express ou nenhum acesso Dashboard.

Visualização privada

Você pode usar cobranças de destino, sem o parâmetro on_behalf_of, quando sua plataforma e conta conectada estão em países diferentes, nos EUA, no Reino Unido e na UE. Para ter acesso antecipado, fale conosco.

Incorpore um formulário de pagamento pré-integrado ao seu site usando o Stripe Checkout. Compare esta integração com as outras formas de integração da Stripe.

Visualização do Checkout integradoVisualização do Checkout integrado
powdur.me

Esforço de integração

Low-code

Tipo de integração

Integrar um formulário de pagamento pré-configurado ao seu site

Personalização da IU

Personalização limitada

Primeiro, cadastre-se para obter uma conta Stripe.

Use nossas bibliotecas oficiais para acessar a API da Stripe no seu aplicativo:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Criar uma sessão do Checkout
Lado do servidor

Uma Sessão do Checkout controla o que o seu cliente vê no formulário de pagamento integrável, como itens de linha, o valor do pedido e a moeda do pedido. Crie uma sessão do Checkout em um endpoint no lado do servidor (por exemplo, /create-checkout-session). A resposta inclui um client_secret que você usará na próxima etapa para montar o Checkout.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=1000 \ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"=
{{CONNECTED_ACCOUNT_ID}}
\ -d mode=payment \ -d ui_mode=embedded \ --data-urlencode return_url="https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}"
  • payment_intent_data[transfer_data][destination] – Este parâmetro indica que esta é uma cobrança de destino. Uma cobrança de destino 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 – Este parâmetro representa os itens que o cliente está comprando. Os itens são exibidos no formulário de pagamento integrado.
  • return_url - A Stripe redireciona o cliente para o URL de retorno após ele realizar uma tentativa de pagamento e substitui a string {CHECKOUT_SESSION_ID} pelo ID da sessão do Checkout. Use para acessar a sessão do Checkout e inspecionar o status para decidir o que mostrar ao cliente. Verifique se o URL de retorno corresponde a uma página no seu site que informe o status do pagamento. Também é possível anexar seus próprios parâmetros de consulta, que permanecem durante o processo de redirecionamento. Consulte personalizar comportamento de redirecionamento com um formulário integrado para saber mais.
  • payment_intent_data[application_fee_amount] - este parâmetro especifica o valor planejado pela sua plataforma para retirar da transação. O valor total da cobrança é imediatamente transferido da plataforma para a conta conectada que é especificada por transfer_data[destination] após a captura da cobrança. O application_fee_amount é transferido de volta para a plataforma, e a tarifa da Stripe é deduzida do valor da plataforma.

Ao realizar cobranças de destino, o Checkout usa as configurações de marca da conta da sua plataforma. Consulte personalizar marca para obter mais informações.

Montar Checkout
Lado do cliente

O Checkout está disponível no Stripe.js. Inclua o script Stripe.js na página, adicionando-o ao cabeçalho do arquivo HTML. Crie um nó DOM vazio (contêiner) para usar na montagem.

index.html
<head> <script src="https://js.stripe.com/v3/"></script> </head> <body> <div id="checkout"> <!-- Checkout will insert the payment form here --> </div> </body>

Inicialize o Stripe.js com sua chave de API publicável. Passe o client_secret da etapa anterior para options quando criar a instância do Checkout:

index.js
// Initialize Stripe.js const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); initialize(); // Fetch Checkout Session and retrieve the client secret async function initialize() { const fetchClientSecret = async () => { const response = await fetch("/create-checkout-session", { method: "POST", }); const { clientSecret } = await response.json(); return clientSecret; }; // Initialize Checkout const checkout = await stripe.initEmbeddedCheckout({ fetchClientSecret, }); // Mount Checkout checkout.mount('#checkout'); }

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

Gerenciar eventos pós-pagamento
Lado 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.

A Stripe recomenda gerenciar todos os eventos a seguir ao receber pagamentos com o Checkout:

EventoDescriçãoPróximas etapas
checkout.session.completedO cliente autorizou o pagamento enviando o formulário do Checkout.Aguarde a confirmação ou falha do pagamento.
checkout.session.async_payment_succeededO pagamento do cliente foi confirmado.Execute o pedido de mercadorias ou serviços.
checkout.session.async_payment_failedO 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.

Testar a 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.

OpcionalHabilite mais formas de pagamento

Coletar tarifas

Quando um pagamento é processado, em vez de transferir o valor total da transação para uma conta conectada, sua plataforma pode decidir cobrar uma parte do valor da transação na forma de tarifas. Você pode definir os preços das tarifas de duas maneiras diferentes:

  • Use a ferramenta de preços da plataforma para definir e testar as regras de preços das tarifas da plataforma. 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 diretamente em um PaymentIntent usando o parâmetro application_fee_amount ou transfer_data[amount]. As tarifas definidas com esse método substituem a lógica de preços especificada na ferramenta de preços da plataforma.

Ao criar cobranças com application_fee_amount, o valor total da cobrança é imediatamente transferido da plataforma para a conta transfer_data[destination] depois que a cobrança é capturada. O valor application_fee_amount (limitado ao valor total da cobrança) é transferido de volta à plataforma em seguida.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=1000 \ -d "line_items[0][quantity]"=1 \ -d "payment_intent_data[application_fee_amount]"=123 \ -d "payment_intent_data[transfer_data][destination]"=
{{CONNECTED_ACCOUNT_ID}}
\ -d mode=payment \ -d ui_mode=embedded \ --data-urlencode success_url="https://example.com/success"

Após a coleta da tarifa da plataforma, um objeto Application Fee é criado. Veja uma lista de tarifas da plataforma no Dashboard, com as tarifas da plataforma ou em Sigma. Você também pode usar a propriedade amount no objeto Application Fee para obter relatórios detalhados de tarifas.

Quando usar um application_fee_amount, lembre-se:

  • O application_fee_amount é limitado ao valor total da transação.
  • O application_fee_amount é sempre computado na mesma moeda da transação.
  • A tarifa da plataforma é liquidada na mesma moeda de liquidação da conta conectada. Para cobranças de destino internacionais, isso pode diferir da moeda de liquidação da sua plataforma.
  • Sua plataforma paga a tarifa da Stripe após a transferência do application_fee_amount para sua conta.
  • Nenhuma tarifa da Stripe adicional é aplicada ao valor.
  • Sua plataforma pode usar relatórios integrados de tarifas da plataforma para reconciliar as tarifas cobradas.
  • Em dashboards ou componentes hospedados na Stripe como o componente de detalhes do pagamento, sua conta conectada pode visualizar o valor total e o valor da tarifa da plataforma.

Fluxo de fundos

Com o código acima, o valor total da cobrança (US$ 10,00) é adicionado ao saldo pendente da conta conectada. O valor application_fee_amount (US$ 1,23) é subtraído do valor da cobrança e transferido para sua plataforma. As tarifas da Stripe (US$ 0,59) são subtraídas do saldo da conta da plataforma. O valor da tarifa da plataforma, deduzido das tarifas da Stripe (US$ 1,23 - US$ 0,59 = US$ 0,64), permanece no saldo da conta da plataforma.

Fluxo de fundos para Destination Charges

O application_fee_amount é disponibilizado no cronograma de transferências normal da conta da plataforma, assim como os fundos das cobranças normais da Stripe.

Personalizar a marca

Sua plataforma usa as configurações de marca no Dashboard para personalizar a marca na página de pagamentos. Para cobranças de destino, o Checkout usa as configurações de marca da conta da plataforma. Para cobranças de destino com on_behalf_of, o Checkout usa as configurações de marca da conta conectada.

As plataformas podem definir as configurações de marca das contas conectadas usando a API Atualizar conta:

  • icon - Exibido próximo ao nome da empresa, no cabeçalho da página de Checkout.
  • logo - É usado no lugar do ícone e do nome da empresa, no cabeçalho da página de Checkout.
  • primary_color - Cor de fundo da página de Checkout.
  • secondary_color - Cor dos botões da página de Checkout.
Command Line
cURL
curl https://api.stripe.com/v1/accounts/
{{CONNECTED_ACCOUNT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "settings[branding][icon]"=
{{FILE_ID}}
\ -d "settings[branding][logo]"=
{{FILE_ID}}
\ --data-urlencode "settings[branding][primary_color]"="#663399" \ --data-urlencode "settings[branding][secondary_color]"="#4BB543"

Especificar o comerciante da liquidação

O comerciante da liquidação depende das funções da conta e da forma de criação da cobrança. O comerciante da liquidação determina quais dados são usados para fazer a cobrança. Isso inclui a descrição no extrato (da plataforma ou da conta conectada) exibida sobre essa cobrança no extrato bancário ou de cartão de crédito do cliente.

A especificação do comerciante da liquidação permite que você defina mais explicitamente para quem as cobranças são criadas. Por exemplo, algumas plataformas preferem ser o comerciante da liquidação porque o cliente final interage diretamente com a plataforma (como plataformas sob demanda). No entanto, algumas plataformas têm contas conectadas que interagem diretamente com os clientes finais (como lojas de uma plataforma de e-commerce). Nesses cenários, pode fazer mais sentido que a conta conectada seja o comerciante da liquidação.

Você pode definir o parâmetro on_behalf_of para o ID de uma conta conectada para tornar essa conta o comerciante de liquidação do pagamento. Quando usar on_behalf_of:

  • As cobranças são liquidadas no país da conta conectada e na moeda de liquidação.
  • É usada a estrutura de tarifas do país da conta conectada.
  • A descrição no extrato da conta conectada é exibida no extrato do cartão de crédito do cliente.
  • Se a conta conectada estiver em um país diferente do da plataforma, o endereço e o número de telefone da conta conectada serão exibidos no extrato do cartão de crédito do cliente.
  • O número de dias que um saldo pendente é retido antes de receber o repasse depende da configuração delay_days na conta conectada.

Se on_behalf_of for omitido, a plataforma será a empresa registrada para o pagamento.

Cuidado

O parâmetro on_behalf_of só é aceito para contas conectadas com uma função de pagamentos, como card_payments. As contas sujeitas ao contrato de serviços de destinatário não podem solicitar card_payments nem outras funções de pagamento.

Emitir reembolsos

Se você está usando a API Payment Intents, os reembolsos devem ser emitidos para a cobrança criada mais recentemente.

As cobranças criadas na conta da plataforma podem ser reembolsadas usando a chave secreta da conta da plataforma. No reembolso de uma cobrança que tem transfer_data[destination], por padrão, a conta de destino mantém os fundos que foram transferidos para ela e o saldo negativo do reembolso é coberto pela conta da plataforma. Para recuperar os fundos da conta conectada a fim de cobrir o reembolso, defina o parâmetro reverse_transfer como true na criação do reembolso:

Command Line
curl
curl https://api.stripe.com/v1/refunds \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d charge="{CHARGE_ID}" \ -d reverse_transfer=true \

Por padrão, o valor total da cobrança é reembolsado, mas você pode criar um reembolso parcial definindo amount como um inteiro positivo.

Se o valor total da cobrança é reembolsado, toda a transferência é anulada. Caso contrário, um valor proporcional da transferência é anulado.

Reembolsar tarifas da plataforma

Quando você reembolsa uma cobrança com uma tarifa da plataforma, por padrão, a conta da plataforma mantém os fundos da tarifa da plataforma. Para devolver esses fundos para a conta conectada, defina o parâmetro refund_application_fee como true na criação do reembolso:

Command Line
curl
curl https://api.stripe.com/v1/refunds \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d charge="{CHARGE_ID}" \ -d reverse_transfer=true \ -d refund_application_fee=true \

Se você reembolsar a tarifa da plataforma em uma cobrança de destino, precisa anular a transferência. Se o valor total da cobrança é reembolsado, toda a tarifa da plataforma é anulada. Caso contrário, um valor proporcional da tarifa da plataforma é reembolsado.

Você também pode informar um valor false para refund_application_fee e reembolsar a tarifa da plataforma separadamente usando a API.

Reembolsos com falha

Quando um reembolso falha ou você o cancela, o valor do reembolso não finalizado retorna ao seu saldo da conta da plataforma na Stripe. Crie uma transferência se precisar movimentar os fundos para a conta conectada.

Gerenciar contestações

Para cobranças de destino, com ou sem on_behalf_of, a Stripe debita os valores da contestação e as tarifas da conta da sua plataforma.

Recomendamos configurar um webhook para escutar eventos criados por contestação. Se isso acontecer, tente recuperar fundos da conta conectada anulando a transferência pelo Dashboard ou criando uma anulação de transferência.

Se o saldo da conta conectada for negativo, a Stripe tenta debitar sua conta externa se debit_negative_balances estiver definido como true.

Se você desafiar a contestação e vencer, poderá transferir os fundos que devolveu anteriormente para a conta conectada. Se sua plataforma tiver saldo insuficiente, a transferência falhará. Evite erros de saldo insuficiente adicionando fundos ao seu saldo da Stripe.

Erro comum

A retransferência de uma anulação anterior está sujeita a restrições de transferências internacionais, o que significa que você pode não como pagar sua conta conectada. Aguarde para recuperar transferências de pagamento internacionais contestadas para cobranças de destino com on_behalf_of até depois que a contestação for perdida.

Veja também

  • Trabalhar com várias moedas
  • Descrições no extrato com o Connect
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