Merci の裏側 — Stripe Connect でチップ決済 SaaS を作る
Merci は、飲食店・個人事業主向けのチップ決済 SaaS です。お客様がスマホで QR コードを読み取り、店舗のスタッフさんに直接感謝の気持ちを送れる仕組みを提供しています。今回は、Merci の実装で使っている Stripe Connect について、選定理由と気をつけたポイントを共有します。
なぜ Stripe Connect か
チップ決済 SaaS のような「プラットフォーム」で必須になるのが、「プラットフォームがお金を預かって、後で受取人に送る」という Connect パターンです。Stripe Connect は、この構造を安全に実装するための API を提供しています。
Stripe Connect には、Standard / Express / Custom の 3 種類のアカウントタイプがあります。Merci では、店舗さん向けのオンボーディングを最小限にするため、Express アカウント を採用しました。店舗さんは Merci の管理画面から Stripe の認証フローに 1 回だけ入るだけで、以降は Merci 内から入出金管理ができます。
プラットフォーム手数料の設計
Stripe Connect では、Charges に application_fee_amount を指定することで、プラットフォーム側が手数料を取れます。Merci はこの手数料からサービス提供コストをまかない、店舗さんには最大限のチップが渡るように設計しています。手数料の透明性は、店舗さんの信頼を得るうえで最も大事なポイントです。
税務と法令遵守
チップ決済は、日本の税務ではまだ整理されていない領域があります。私たちは弁護士・税理士とも相談しながら、以下の方針で運営しています:
- チップは店舗さんの収益として扱う:スタッフさん個人への「贈与」ではなく、店舗さんの売上として計上します。
- 資金移動業ではなく決済代行として位置づける:Stripe を経由することで、Merci 自体は資金を保管しません。
- 特商法に基づく表記を明記:料金・返金ポリシー・事業者情報をすべての決済ページに掲載します。
Webhook のべき等性
Stripe は決済イベントを Webhook で通知します。ここで注意すべきなのは、同じ Webhook が複数回来ることがあることです。Merci では、event.id を DB に保存して重複を検知する仕組みを最初から入れました。これによって、決済が二重に処理されて店舗さんに二重の入金があるような事故を防いでいます。
まとめ
チップ決済 SaaS は、技術的にはシンプルですが、金融・税務・法務の観点で細部が重要です。Stripe Connect Express + 明確な手数料設計 + 徹底したべき等性、この 3 つで、店舗さんとお客様の信頼を得られる仕組みを作れました。