Chapter 20

Manual Payouts

Toru Furukawa
Toru Furukawa
2021.12.20に更新
このチャプターの目次

Manual Payouts は、明示的に API を呼び出して、都度入金をする処理だ。

API

呼び出し時点で available な金額が、Manual Payout の上限である。available な金額は Balance API で取得できる。

request
curl https://api.stripe.com/v1/balance \
  -u sk_xxxx: \
  -H "Stripe-Account: acct_xxxx" \
response
{
  "object": "balance",
  "available": [
    {
      "amount": 2000,
      "currency": "jpy",
      "source_types": {
        "card": 2000
      }
    }
  ],
  "livemode": false,
  "pending": [ ... ]
}

この例では、2000 円が上限である。

Manual Payout を実行する API は以下のとおりだ。

request
curl https://api.stripe.com/v1/payouts \
  -d amount=1100 \
  -d exapnd[]=balance_transaction \
  -H "Stripe-Account: acct_xxxx" \
  ...
response
{
  "id": "po_xxxx",
  "amount": 1100,
  "balance_transaction": {
    "amount": -1100,
    "fee": 0,
    "net": -1100,
    ...
  },
  ...
}

資金フローは、下図のようになる。はじめて Bank に矢印を引いた。

Buyer              Platform                         .  Seller
Card               Bank                             .  Bank
 :                                                  .    ^
 :                                                  .    | 1100
 :                                                  .    |
 :                                                  .  [Payout]
 :                                                  .  [TXN]
 Payment Method   Platform Account                  .  Connected Account

Balance Transaction

Manual Payout は取引残高ではなくて、金額によって入金額が決定する。そのため payout と取引残高は関連づかない。

request
curl https://api.stripe.com/v1/balance_transactions \
  -d payout=po_xxxx \
  -G \
  -H "Stripe-Account: acct_xxxx" \
  ...
{
  "data": [],
  ...
}

この種の情報が必要な場合は、Stripe の外側で算出・管理する必要がある。

一方、すべての Balance Transaction を見てみよう。

request
curl https://api.stripe.com/v1/balance_transactions \
  -d payout=po_xxxx \
  -G \
  -H "Stripe-Account: acct_xxxx" \
  ...
{
  "data": [
    {
      "net": -1100,
      "reporting_category": "payout",
      ...
    },
    {
      "net": -1000,
      "reporting_category": "refund",
      ...
    },
    {
      "net": 2000,
      "reporting_category": "charge",
      ...
    },
    {
      "net": 1000,
      "reporting_category": "charge",
      ...
    },
    ...
  ],
  ...
}

payout によって、Connected Account の残高が減っているのが確認できる。

まとめ

Manual Payouts の呼び出し方と、Balance Transaction への反映を見た。明日は、Connect Fee 略して Connect 手数料を見ていく。