← アクター選択に戻る

システム構成とお金の流れ

Craftletterが裏側で何をしているのか・お金がどう動くのかを、役員向けに1枚に整理した資料です。
対象:契約成立 / POD発注 / MCP利用 の3シナリオを Stripe Connect で分配するまで。

目次: ① システム構成 ② お金の流れ(共通) ③ 3つのシナリオ ④ 手数料と実手取り ⑤ タイムライン ⑥ 失敗時の処理 ⑦ 使うAPI
01

システム構成

どのパーティがどのシステムを動かすか
企業・自治体 発注側・契約相手 craftletter.jp (Shopify ストアフロント) 柄カタログ・商品ページ 決済(全額) Craftletter Backend (新規開発する部分) • 信託台帳 • ライセンス契約管理 • MCPブリッジ • Webhook処理 Stripe Connect (Express accounts) • 決済受付(100%) • Transfers で3分配 • Payouts で銀行送金 • KYC / 本人確認 • 支払調書生成 職人の銀行口座 55% / T+1着金 Craftletter 法人口座 35% / T+1着金 産地基金(信託口) 10% / T+1着金 決済 Webhook Transfers指示 55% 35% 10% Webhook受信
企業・自治体ANA・自治体・ホテル等
craftletter.jp(既存Shopify)柄カタログ・商品ページ・決済受付
Craftletter Backend(新規開発)台帳・契約・MCP・Webhook
Stripe Connect Express決済・3分配・本人確認・調書
職人・CL・産地基金の口座それぞれStripeに紐付いた銀行口座
信託口産地基金は CL とは別の信託口で分別管理
02

お金の流れ(共通のコア動作)

全シナリオで必ずこの順番で動く
1

発注側が 100% を Stripe に支払う

craftletter.jp のチェックアウト(Shopify Payments の裏は Stripe)で全額が Craftletter のプラットフォームアカウントに入金されます。 この時点で分配は発生しません。入金は一時預かり扱い。

2

Craftletter Backend が「分配トリガー」を受ける

シナリオによって異なるが、Shopify からの fulfillment_created(出荷完了) や Backend 自身の「契約成立」「MCP利用記録」が発生すると、 Backend が transfers.create を Stripe に送信する。

3

Stripe Connect が自動で 55 / 35 / 10 に分解して送る

Transfers API を3回叩く(職人・CL・産地基金のConnected Accountあて)。 預り金が3つの Connected Account に振り分けられる。

4

各口座のスケジュール Payout で銀行に着金(T+1)

各 Connected Account は翌営業日に自動で銀行に送金される(Stripe Express の標準スケジュール)。 職人は Stripe Dashboard にログイン不要。通帳記入だけで受取完了。

5

Backend が通知・帳簿記録を残す

transfer.paid / payout.paid Webhook を受けて、 職人・CL・産地基金にメール通知台帳への確定記録月次レポートへの集計を行う。

03

3つのシナリオ別の違い

トリガーと決済タイミングだけが違う

A. ライセンス契約(例:ANAが柄を飛行機に使う)

トリガー:契約成立 決済:一括前払い 分配:契約確定時に即時
T+0
企業が craftletter.jp で契約フォームを確定(用途・期間・数量)
T+0(即時)
Stripe が契約金額を受領(プラットフォーム預り)
T+0(即時)
Backend が transfers.create × 3回 実行(物理出荷なしなので待たない)
T+1
職人・CL・産地基金の口座に銀行着金
T+1
契約書 PDF(22001号証跡付)が各パーティにメール配信
注意:ライセンスは形のない権利なので「返品」概念がない。ただし契約条項違反時は Transfer Reversal で分配を巻き戻す仕組みを用意する(下の⑥参照)。
04

手数料と実際の手取り

¥100,000 の契約を例に計算
項目 料率 / 金額 金額(¥100,000契約の場合)
契約金額(発注側が払う額) ¥100,000
Stripe 決済手数料(Shopify Paymentsの場合) 3.4% + ¥0 − ¥3,400
Stripe Connect プラットフォーム手数料 0.25% + ¥10 / Transfer − ¥280(3回分)
振込手数料(Payout) ¥0(Stripe標準スケジュール内) ¥0
消費税(CLの取り分にのみ) 10%(発注側から別途徴収)
3分配可能な総額 実質 96.3% ¥96,320
職人(55%)
¥52,976
¥100,000 の契約から
Craftletter(35%)
¥33,712
プラットフォーム収益
産地基金(10%)
¥9,632
若手育成・保存事業へ
05

1件の発注が完了するまでの所要時間

契約成立〜職人の銀行着金まで

ライセンス契約・POD・MCP それぞれのリードタイム(実運用想定)

シナリオ 契約/発注 分配実行 職人の銀行着金 総所要
ライセンス契約 即時 即時 翌営業日 約 1日
POD 発注(グッズ製造あり) 即時 出荷後(+14〜21日) 出荷+1日 約 2〜3週間
MCP 利用(月次集計) 随時記録 翌月 15日(入金後) +1日 最大 45日
06

失敗時・例外処理

実運用で必ず起こる3パターン

① POD 不良品・返品

出荷済みだが発注側から返品。分配は済んでいる。


対応:Transfer Reversal で3口座から比例回収。 回収できない分はCL負担の補填基金でカバー。

② 職人の口座エラー

Payout がpayout.failedで戻る(口座凍結・番号誤り等)。


対応:Stripe が自動リトライ(3回)。 失敗継続時はCLスタッフに通知→職人へ電話確認→口座更新。

③ 契約違反・係争

企業が契約範囲を超えて柄を使用した等の発覚。


対応:transfers.pause → CL内部で調査 → Connect Review → 追加請求 or 契約解除 + Reversal。

07

実装で使う Stripe API と Webhook

エンジニア向け参考

送信(API呼び出し)

POST /v1/accounts
Connected Account(職人・CL・産地基金)の作成。Express フローで KYC を Stripe に委任。
POST /v1/transfers
プラットフォーム預り金から Connected Account へ分配。3分配で3回呼ぶ。
POST /v1/payouts
Connected Account 内の残高を銀行口座へ送金(標準スケジュールで自動)。
POST /v1/transfers/:id/reversals
返品・係争時に分配を巻き戻す。

受信(Webhook)

shopify: fulfillments/create
POD 出荷確定 → 分配トリガー。
stripe: transfer.paid
分配完了 → 台帳に「分配済み」として記録。
stripe: payout.paid
銀行着金確定 → 職人にメール通知(月次レポートにも集計)。
stripe: payout.failed
口座エラー → CLスタッフに Slack 通知・自動リトライ。

役員向けサマリー(この資料の要点)

← トップに戻る 分配通知のサンプルを見る