連携 · 決済サービス
Stripe の売上を、購入につながった訪問に 1 件ずつ紐づけます。
読み取り専用の制限付きキーで Stripe を接続します。Tally は過去 365 日分を取り込み、以降は決済が発生するたびに受け取って、最も確かな根拠をもとに訪問者へ紐づけます。
無料で始める
14 日間無料、カード登録は不要です。
01Tally が読み取るもの
- すべての決済を PaymentIntent 単位で 1 回だけ数えます。Checkout、Payment Link、請求書、コードで作成した PaymentIntent など、どこから発生した決済でも同じです。
- サブスクリプションは請求書をもとに、初回の支払い・更新・プラン変更を区別します。トライアルから有料に移行した場合は売上として数えます。
- 一部返金を含む返金とチャージバック。差し引かれた資金はマイナス、戻された資金はプラスとして計上します。
- 金額は税抜きで、決済日の欧州中央銀行のレートで米ドル(セント単位)に換算します。小数点以下のない通貨も正しく扱います。
- 接続時に過去 365 日分を取り込み、以降は Tally がアカウントに作成する Webhook エンドポイントを通じて、各決済を数秒以内に受け取ります。
02売上が訪問に紐づくしくみ
- Checkout のメタデータコードから訪問者の ID を tally_visitor_id として Checkout Session の metadata に渡します。subscription_data.metadata にも入れておけば、更新分にも引き継がれます。確度:高。
- Payment Linksスニペットが buy.stripe.com のリンクに訪問者の ID を client_reference_id として自動で付けます。Cookie モードでは常に、同意優先モードでは同意後に動作します。確度:高。
- 完了ページ完了ページの URL に ?session_id={CHECKOUT_SESSION_ID} を付けておくと、そのページを最初に表示した訪問者を購入者とみなします。確度:高。Cookie なしモードでも使えます。
- メールアドレスサイトで tally('identify', { email }) を呼び出し、決済の顧客メールアドレスと一致すれば紐づけます。照合はどちらもハッシュ化して行います。確度:中。
- 更新と返金更新やアップグレードはサブスクリプションの初回決済の紐づけを、返金やチャージバックは取り消す対象の決済の紐づけを引き継ぎます。
03読み取れないもの
- PaymentIntent を持たない旧 Charges API の決済は数えません。その返金や異議申し立ても同様です。
- Stripe の外で支払われた請求書、手動で支払い済みにした請求書、クレジット残高で精算された請求書は、Stripe 上でお金が動かないため数えません。
- 1 つの Stripe アカウントがデータを送れるのは、一度に 1 サイトのみです。最初のサイトから切断するまで、別のサイトへの接続は拒否されます。
- 異議申し立ての手数料は収益ではなくコストなので、チャージバックとしては数えません。
04接続のしかた
- Stripe で Developers → API keys を開き、「Create restricted key」を選んで下記の権限を設定します。それ以外はすべて「None」のままにします。
- キーをサイトの Integrations ページに貼り付けます。各権限は実際の API 呼び出しで確認するため、足りない権限があれば、何かを保存する前にその名前を示します。
- Tally はキーを暗号化して保管し、アカウントに専用の Webhook エンドポイントを作成して、過去 365 日分を取り込みます。
- コードで作成する Checkout Session を確度の高い方法で紐づけるには、Coverage ページにある Node、Next.js、Python、Ruby、PHP 向けの追加コードを使います。
制限付きキーに必要な権限
Tally が求めるのは、次のことだけができる制限付きキーです。貼り付けた時点で権限ごとに実際の呼び出しで確認するので、足りない権限があれば名前で示されます。
| 権限 | アクセス | 用途 |
|---|---|---|
| PaymentIntents | 読み取り | すべての支払い:金額、通貨、顧客、メタデータ。 |
| Invoices | 読み取り | 支払いがサブスクリプションの初回か、更新か、プラン変更か、そして含まれる税額。 |
| Checkout Sessions | 読み取り | メタデータまたは client_reference_id で渡す訪問者 ID と、どの Payment Link で売れたか。 |
| Customers | 読み取り | 顧客のメタデータと、tally('identify') と照合するためのメールアドレス(すぐにハッシュ化し、保存はしません)。 |
| Charges | 読み取り | 返金。 |
| Disputes | 読み取り | チャージバックと、異議申し立てに勝った後に戻された資金。 |
| Webhook Endpoints | 書き込み | Tally があなたのアカウントに専用のエンドポイントを作成するので、支払いは数秒で届きます。 |
05よくある質問
シークレットキーではなく制限付きキーを使うのはなぜですか?
制限付きキーは、許可した操作しか行えません。Tally に必要なのは決済の読み取りと Webhook エンドポイント 1 つの作成だけで、お金を動かすことはありません。キーは Stripe でいつでも無効にできます。シークレットキーは受け付けません。
更新分は初回の売上の流入元を引き継ぎますか?
はい。更新やアップグレードはサブスクリプションの初回決済の紐づけを引き継ぐため、継続収益は顧客を獲得した訪問に帰属したままです。訪問者の ID を subscription_data.metadata にも入れておけば、すべての更新にその ID が付きます。
テストモードは使えますか?
はい。テストモードの制限付きキーも本番用と同じように接続でき、連携にはテストモードのバッジが表示されます。まずは Stripe のテストカードで一連の流れを試せます。
ほかの通貨での決済はどうなりますか?
各決済日の欧州中央銀行の参照レートで、米ドル(セント単位)に換算します。ECB がレートを公表していない通貨は、架空のレートを当てはめず、元の通貨の金額のまま保持して印を付けます。