連携 · 決済サービス

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接続のしかた

  1. Stripe で Developers → API keys を開き、「Create restricted key」を選んで下記の権限を設定します。それ以外はすべて「None」のままにします。
  2. キーをサイトの Integrations ページに貼り付けます。各権限は実際の API 呼び出しで確認するため、足りない権限があれば、何かを保存する前にその名前を示します。
  3. Tally はキーを暗号化して保管し、アカウントに専用の Webhook エンドポイントを作成して、過去 365 日分を取り込みます。
  4. コードで作成する 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 があなたのアカウントに専用のエンドポイントを作成するので、支払いは数秒で届きます。

作成場所:Stripe, Developers, API keys.

05よくある質問

  • シークレットキーではなく制限付きキーを使うのはなぜですか?

    制限付きキーは、許可した操作しか行えません。Tally に必要なのは決済の読み取りと Webhook エンドポイント 1 つの作成だけで、お金を動かすことはありません。キーは Stripe でいつでも無効にできます。シークレットキーは受け付けません。

  • 更新分は初回の売上の流入元を引き継ぎますか?

    はい。更新やアップグレードはサブスクリプションの初回決済の紐づけを引き継ぐため、継続収益は顧客を獲得した訪問に帰属したままです。訪問者の ID を subscription_data.metadata にも入れておけば、すべての更新にその ID が付きます。

  • テストモードは使えますか?

    はい。テストモードの制限付きキーも本番用と同じように接続でき、連携にはテストモードのバッジが表示されます。まずは Stripe のテストカードで一連の流れを試せます。

  • ほかの通貨での決済はどうなりますか?

    各決済日の欧州中央銀行の参照レートで、米ドル(セント単位)に換算します。ECB がレートを公表していない通貨は、架空のレートを当てはめず、元の通貨の金額のまま保持して印を付けます。