Как создавать подписки (используя параметр on_behalf_of) с целевыми переводами для подключенных учетных записей?

#stripe-payments

#stripe-платежи

Вопрос:

Наша цель

У нас есть платформа, где мы управляем всеми клиентами, продуктами и ценами. Возможно ли, чтобы подключенные учетные записи получали выплаты от подписок, взимаемых с учетной записи платформы? (Подключенные учетные записи могут быть во всех регионах).


Мы хотим добавить подключенные учетные записи, которые могут получать платежи по подписке. Идеальный сценарий — чтобы все платежи были списаны на учетную запись платформы, а затем переведены на подключенные учетные записи.

Вариант 1

Из документов проще всего использовать transfer_data[destination] .

Однако, оказывается, это невозможно, если ваши подключенные учетные записи из разных регионов. Например, подключенная учетная запись в США, где, поскольку платформа находится в Австралии.

Вариант 2

stripe_account Заголовок передачи, но проблема здесь в том, что клиенты и цены должны принадлежать подключенной учетной записи, а это не вариант.

Вариант 3 (единственное решение?)

Следовательно, решение состоит в использовании on_behalf_of=connected_account_id параметра, который описан в документации. Проблема в том, что stripe.Subscription.create() API не имеет такого параметра.

Кому-нибудь удалось успешно создать подписки, используя on_behalf_of ?

Комментарии:

1. В какой-то момент мне пришлось использовать задания cron с намерением оплаты, чтобы обойти эту проблему, но это не идеально. Нашли ли вы какое-нибудь решение этой проблемы? Я обратился в службу поддержки, и они сказали, что это не часть какой-либо бета-версии, так что я немного сбит с толку. Спасибо!

2. @legacycode Я в такой же ситуации…. Вы нашли что-нибудь с тех пор?

3. @KevinB существует 1 решение, оно называется Stripe трансграничные выплаты. Для этого вам нужен счет в американском банке

Ответ №1:

На данный момент Stripe официально не поддерживает on_behalf_of on Subscription , и единственными доступными официальными опциями являются первые 2, которые вы упомянули.

Для варианта # 3 это часть частной бета-версии, к которой вы можете получить доступ. Я бы рекомендовал обратиться к их службе поддержки по этому поводу

Ответ №2:

Вызов Subscription create не поддерживает это, но вы можете сделать это, напрямую установив атрибут on_behalf_of в счете, созданном подпиской. Вы можете обновить уже созданный счет-фактуру, прослушав событие webhook «invoice.created».

На вашем веб-крючке :

 if 'invoice.created' == event.type
  stripe_invoice = event.data.object # Stripe::Invoice
  Stripe::Invoice.update(
      stripe_invoice.id,
      {
        transfer_data: {
             destination: stripe_account #connected account ID
        },
        on_behalf_of: stripe_account #connected account ID
      },
      {
        api_key: ENV.fetch('STRIPE_SECRET_KEY'),
        stripe_version: ENV.fetch('STRIPE_API_VERSION')
      }
  )
end
  

Вы также можете убедиться, что счет-фактура относится к подписке, проверив тип счета, и вы также найдете свой идентификатор подписки в объекте счета, который можно использовать для извлечения исходного объекта подписки.

Пожалуйста, прочитайте: https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts

Комментарии:

1. По факту, когда я пытаюсь это сделать — он выдает мне ошибку «Вы не можете указать on_behalf_of параметр при обновлении счета, созданного по подписке».

Ответ №3:

На данный момент, февраль 2023 года, документы Stripe утверждают, что официально поддерживают подписки on_behalf_of на момент создания.

https://stripe.com/docs/connect/subscriptions#on-behalf-of