Chapter 22

Account Debiting

Toru Furukawa
Toru Furukawa
2021.12.22に更新

「Connected Account が Platform Account に支払う」Account Debiting という機能がある。

API 呼び出し

Charge API を呼び出して、Connected Account から Platform Account に支払いをする。

request
curl https://api.stripe.com/v1/charges \
  -d amount=1000 \
  -d source=acct_xxxx \
  -d "exapnd[]"=balance_transaction \
  ...
response
{
  "id": "py_xxxx",
  "object": "charge",
  "amount": 1000,
  "balance_transaction": {
    "amount": 1000,
    "fee": 15,
    "net": 985,
    ...
  },
  ...
}

Platform Account が 15 円の 手数料が発生しているのが分かる。amount の 15% である。

資金フローは下図のようになる。

Payment Method   Platform Account    Connected Account
                     ^                 |
                     |                 |
                     | 985        1000 |
                     |                 |
                     | [Charge]        |
                    [TXN]--------------+
                     |
                     | 15
                     v
                 Stripe

他の資金フローとの比較

Transfer Reversal と Application Fee も、Connected Account から Platform Account への資金移動だ。おおざっぱに比較すると下表のようになる。

Account Debiting Trasnfer Reversal Application Fee
上限 残高 元の Transfer 支払い金額
呼び出しタイミング いつでも Charge/Transfer の後 Charge と同時

Account Debiting の上限は Connected Account 残高である。また、いつでも呼び出せる。月末でもいいし、Connect 手数料が確定した月初でもいい。Connected Account の立場からは、明示的に Platform Account への支払いが発生したように見える。

Transfer Reversal は、元の Transfer を巻き戻す。金額の上限は、元の Transfer 金額になる。また Destination Charge や Transfer の 後で のみ実行できる。Connected Account の立場からは、売上が巻き戻されたように見える。

Application Fee は、 Destination Charge で指定する。Charge 金額が上限で、決済時のみ指定できる。Connected Account の立場からは、売上に連動して Platform に支払った手数料のように見える。

このアドベントカレンダーでは、メリット・デメリットみたいなことは書かない。でも、このトピックに関しては、ちょっとだけ書いておく。

Platform と Seller の間における、製品・サービスと資金の取引という観点で見ると、各決済に連動しない資金移動は Account Debiting が取引実態を表現している。チャージバック手数料や、Connect 手数料を Seller に負担させる場合が該当する。あるいは、固定の月額手数料や、特別処置の手数料(たとえば EC サイトのトップページで大々的に取り上げる代金とか)なんかもそうだろう。Balance Transaction や明日見ていくレポートを見ても実態を表している。

ただし、1.5% の手数料がかかる。これを安いと見るか、高いとみるかは、開発・運用コストとの比較が必要だ。

各決済に連動しない資金移動を、Transfer Reversal や Application Fee で実装すると、資金移動自体には手数料がかからない(カード決済手数料はかかる)。一方で実行するタイミングに制限があり、金額の上限が元の決済金額に依存する。

また、Balance Transaction やレポートを見たときに、どのような取引があったのかが見えない。たとえばチャージバック手数料 1,500 円は、将来の Transfer Revrsal や Application Fee で相殺できる。けれど、その例外的な計算処理が必要な上に、どういう意図によるものかが Stripe には残らない。だから Stripe の外側に取引の履歴を持ち、かつ、それらは Stripe 内の取引と 1 対 1 で対応しない。

まとめ

というわけで、今日は、Account Debiting を見てきた。明日は、レポーティングを見ていく。