Я получил официальный ответ от strip, нет способа сделать это в одном запросе, но есть способ.
1) начисление ch_xxxx и создана связанная транзакция (txn_xxxxxx)на учетной записи платформы
После того, как платформа получит плату, учетная запись платформы создаст перевод на подключенную учетную запись (tr_xxxxxx), а объект переноса также будет на учетной записи платформы
2) При подключенной учетной записиПосле получения перевода будет создан объект платежа (py_xxxxxx) и связанная транзакция (txn_xxxxx). На подключенном счете эти платежные транзакции будут сгруппированы и выплачены в виде "po_xxxxxx"
То есть между аккаунтом платформыи подключенный аккаунт, от выплаты по подключенному аккаунту до начисления, общий поток выглядит следующим образом:
выплата (po_xxxx) -> транзакции (txn_xxxx) -> платеж (py_xxxx) -> перевод (tr_xxxx) -> начисление (ch_xxxxx)
public static void ListTransactionsForPayout(String payout) throws StripeException {
//1. Get a list of transactions for payout in Connected account
Map<String, Object> balancetransactionParams = new HashMap<String, Object>();
balancetransactionParams.put("limit", 20);
balancetransactionParams.put("payout", "po_1Dy8ZfKxxxxxx");
List<String> expandList = new LinkedList<String>();
expandList.add("data.source");
balancetransactionParams.put("expand", expandList);
RequestOptions requestOptions = RequestOptions.builder()
.setStripeAccount("acct_connected_account")
.build();
BalanceTransactionCollection transactions = BalanceTransaction.list(balancetransactionParams, requestOptions);
for (BalanceTransaction txn : transactions.autoPagingIterable()) {
if (txn.getType().equals("payment")) {
Charge charge = (Charge) txn.getSourceObject();
// 2. Get transfers from payment and get charge from transfer
Transfer transfer = Transfer.retrieve(charge.getSourceTransfer());
System.out.printf("txn %s -> payment %s -> transfer %s -> charge %s\n", txn.getId(), txn.getSource(), transfer.getId(), transfer.getSourceTransaction());
}
}
}