Выплата на банковский счет внешнего счета пользователя дает «Нет такого внешнего счета ...» - PullRequest
0 голосов
/ 24 января 2019

У меня очень неприятная проблема, и документация / служба поддержки 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 Ответ

0 голосов
/ 24 января 2019

, поскольку вы создаете 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.

...