Выплата на банковский счет внешнего счета пользователя дает "Нет такого внешнего счета..."

У меня очень неприятная проблема, и документация / обслуживание клиентов Stripe помогло мне обойтись, и мой вопрос до сих пор не решен.

Я пытаюсь осуществить выплату программно в C# на банковский счет пользователя.

Суммы накапливаются в одной учетной записи чередования (моей учетной записи), но у пользователей есть "остатки", которые отслеживает наш бэкэнд. Когда пользователь решает, что он хочет получить деньги, я сталкиваюсь с проблемой.

Пока что это то, что я реализовал:

  1. Создайте внешнюю учетную запись пользователя и прикрепите банковский счет: https://stripe.com/docs/api/accounts/create
  2. Создайте объект выплат: https://stripe.com/docs/api/payouts/create

Но проблема возникает, когда я создаю выплату и добавляю пункт назначения к этой выплате. Причина этого заключается в том, что у пользователя может быть несколько банковских счетов, связанных с его внешней учетной записью.

У меня есть что-то вроде этого:

Создать внешнюю учетную запись для пользователя

Account userCustomAccount = await account.CreateAsync(new AccountCreateOptions()
{
    Type = "custom",
    DefaultCurrency = "usd",
    Country = "US",
    Email = "user@fake.com",
    LegalEntity = new AccountLegalEntityOptions() {...},
    ExternalBankAccount = new AccountBankAccountOptions()
    {
        AccountHolderType = "individual",
        AccountNumber = "123456789",
        RoutingNumber = "987654321,
        Currency = "usd",
        Country = "US",
        AccountHolderName = "Test User"
    },
    TosAcceptance = new AccountTosAcceptanceOptions(){...},
    PayoutSchedule = new AccountPayoutScheduleOptions()
    {
        Interval = "manual"
    },
    PayoutStatementDescriptor = "TEST"
});

Создать выплату

var sourcePayout = new PayoutCreateOptions()
{
    Amount = 100,
    Currency = "usd",
    Destination = bankAccountId,
    SourceType = "bank_account",
    StatementDescriptor = "PAYOUT"
};

где bankAccountId это идентификатор (like ba_xxxx) что я извлек из userCustomAccount.ExternalAccounts

Я получаю сообщение об ошибке при попытке вызвать выплату о том, что "такого внешнего аккаунта не существует"

Есть идеи, как решить эту проблему? Я не понимаю, почему это так сложно сделать и почему это доставляет мне столько хлопот.

Спасибо!

1 ответ

Так как вы создаете payout на подключенный аккаунт с вашего platform учетной записи, вам нужно будет использовать Stripe-Account заголовок

То, что вы делаете сейчас, - это создание выплаты для вашей учетной записи с идентификатором банка подключенной учетной записи.

в C# вам нужно будет использовать requestOptions

var requestOptions = new RequestOptions();
requestOptions.StripeConnectAccountId = "CONNECTED ACCOUNT ID"; 

.... 
....
var payout = await PayoutService.CreateAsync(sourcePayout, requestOptions);

Главное, когда вы работаете над своим connected account кроме создания самой учетной записи, такой как создание платежа, выплаты, создание клиента на подключенной учетной записи, вам нужно будет передать Stripe-Account заголовок.

Если вы создаете выплату с платформы для подключения внешней учетной записи учетной записи, напрямую это может быть не выполнено. сначала отправьте средства с баланса платформы для подключения учетной записи с помощью API-интерфейса передачи. передать api.

а затем создайте выплату в учетной записи подключения. Обычно выплаты производятся автоматически, и по истечении установленного минимального количества дней (для 2 дней в США) выплата создается со всем доступным балансом в балансе учетной записи Connect.

Другие вопросы по тегам