このチャプターの目次
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 手数料を見ていく。