コンテンツにスキップ

決済フロー

smooth は Stripe を使ってすべての決済処理を行います。

決済の種類

1. 自動決済(Auto Payment)

ドライバーが事前に登録したデフォルトカードで、出場時に自動的に請求されます。

sequenceDiagram
    participant Device as SmoothBox
    participant API as バックエンド
    participant Stripe as Stripe
    participant App as smooth-mobile

    Device->>API: 画像送信(OCR失敗3回連続で出庫確認フロー開始)
    API->>API: 出庫確定・料金計算
    API->>Stripe: 自動決済実行(デフォルトカード)
    Stripe-->>API: Webhook(決済完了)
    API->>App: SSE でリアルタイム通知
    API->>LINE: LINE プッシュ通知

デフォルトカードが未設定の場合、Stripe ホスト型の決済ページへのリンクを生成します。


カード情報の登録

Stripe の SetupIntent を使い、カード情報を直接 Stripe に保存します(smooth のサーバーにはカード番号は保存されません)。

POST /payment-methods      → SetupIntent を作成(client_secret を返す)
POST /payment-methods/stripe-callback → SetupIntent を確定(カードを登録)
POST /payment-methods/{id}/set-default → デフォルトカードを設定

駐車場オーナーへの入金(Stripe Connect)

smooth は Stripe Connect を使い、駐車場オーナーへ売上を送金します。

エンドポイント 説明
POST /parking-owner/connect Stripe Connect アカウントを作成
POST /parking-owner/connect/onboarding オンボーディングリンクを取得
GET /parking-owner/connect/status Connect 状態を確認
GET /parking-owner/deposits 入金履歴

Stripe Webhook

Stripe からのイベントは POST /payments/webhooks/stripe で受け取ります。

主なイベント: - payment_intent.succeeded — 決済成功 - payment_intent.payment_failed — 決済失敗 - charge.dispute.created — チャージバック発生