Выплата на банковский счет внешнего счета пользователя дает "Нет такого внешнего счета..."
У меня очень неприятная проблема, и документация / обслуживание клиентов Stripe помогло мне обойтись, и мой вопрос до сих пор не решен.
Я пытаюсь осуществить выплату программно в C# на банковский счет пользователя.
Суммы накапливаются в одной учетной записи чередования (моей учетной записи), но у пользователей есть "остатки", которые отслеживает наш бэкэнд. Когда пользователь решает, что он хочет получить деньги, я сталкиваюсь с проблемой.
Пока что это то, что я реализовал:
- Создайте внешнюю учетную запись пользователя и прикрепите банковский счет: https://stripe.com/docs/api/accounts/create
- Создайте объект выплат: 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.