連携 · 決済サービス

その他の決済サービスは、Payments API で。

サーバーが記録した決済を、決済の記録を許可した API キーで POST /api/v1/payments に送信します。Tally はそれを保存し、接続済みの決済サービスの売上と同じように購入者の訪問に紐づけます。DataFast の決済リクエストの本文もそのまま使えるので、乗り換えてもコードは変わりません。

無料で始める

14 日間無料、カード登録は不要です。

01Tally が記録するもの

  • Gumroad、FastSpring、Dodo Payments、Creem、PayPal、自社の課金システムなど、サーバーが把握できるあらゆる決済サービスの売上。金額(通貨の基本単位)、通貨、transaction_id を付けて送ります。
  • 更新:renewal を true にし、subscription_id か customer_id を付けると、サブスクリプションの初回決済を引き継ぎ、その流入元を保ちます。
  • 返金:refunded を true にすると、transaction_id で指定した決済から、送った金額分を差し戻します。一部返金には、それぞれ固有の refund_id を付けます。
  • 税額を送った場合は金額から差し引き、残りを決済日の欧州中央銀行のレートで米ドル(セント単位)に換算します。
  • サイトですでに記録済みの transaction_id は重複として扱うため、2 回送られた決済も 1 回だけ数えます。
  • timestamp で決済日を指定できるため、過去に受けた決済もその日の分として数えます。

02売上が訪問に紐づくしくみ

  • 訪問者 ID購入者の _tally_vid Cookie を tally_visitor_id として送ると(datafast_visitor_id や visitor_id でも可)、決済はその訪問者に紐づきます。確度:高。
  • メールアドレスemail か customer_email を送るとすぐにハッシュ化し、サイトでの tally('identify') の呼び出しと照合します。確度:中。名前を送っても受け付けますが、保存はしません。
  • 更新と返金更新はサブスクリプションの初回決済の紐づけを、返金は取り消す対象の決済の紐づけを引き継ぎます。

03読み取れないもの

  • 過去分の取り込みはありません。届くのはサーバーが送信したものだけなので、過去の決済は送信した場合にのみ数えます。
  • Cookie なしモードでは、サーバーが読み取れる訪問者 Cookie がないため、送信された決済はメールアドレスでのみ紐づけます。
  • チャージバック用のフィールドはありません。API が記録するのは売上、更新、返金です。
  • 無料トライアルは収益ではありません。金額が 0 の決済や is_free_trial の付いた決済は、何も記録しません。
  • 接続済みの決済サービスがすでに報告している決済は、送信しないでください。同じ売上を二重に数えてしまいます。

04決済を送信する

  1. サイトの Setup ページで API キーを作成し、「Record payments」にチェックを入れます。チェックのないキーは読み取り専用で、そのキーで送信すると 403 で拒否されます。
  2. サーバーで決済を記録する箇所から、キーを Bearer トークンにして /api/v1/payments に送信します。送るのは amount、currency、transaction_id と、購入者の訪問者 ID またはメールアドレスです。
  3. 訪問者 ID は、購入を完了するリクエストの _tally_vid Cookie から読み取るか、ページからチェックアウトに渡します。
  4. レスポンスで、決済が記録されたか、すでに記録済みだったかがわかります。決済として成り立たない本文には、理由を説明する一文とともに 400 を返します。
  5. 送信された決済は Integrations ページに Payments API として表示され、それぞれ数秒以内に訪問へ紐づけられます。

cURL で送信する決済の例

curl https://tallybyoutpost.com/api/v1/payments \
  -H "Authorization: Bearer $TALLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 29.99, "currency": "USD", "transaction_id": "order_1042",
       "tally_visitor_id": "the _tally_vid cookie", "email": "buyer@example.com"}'

05よくある質問

  • DataFast から乗り換えます。決済のコードは変更が必要ですか?

    変えるのは送信先のアドレスとキーだけです。DataFast のパスと本文は、amount、currency、transaction_id、datafast_visitor_id、email、renewal、refunded を含めてそのまま使えます。サイトはキーで特定されるため、websiteId パラメーターは無視されます。

  • どの決済サービスから送信できますか?

    サーバーが記録するあらゆる決済です。Gumroad、FastSpring、Dodo Payments、Creem、PayPal のほか、自社の課金システムで支払い済みにした請求書も送れます。Webhook でも自前のチェックアウトでも、サーバーが決済を把握できれば送信できます。

  • 利用開始前の決済も送れますか?

    はい。それぞれ timestamp を付けて送信すれば、その日の分として数えます。未来の timestamp は拒否されます。自動で届くものはないので、履歴は送信した分だけになります。

  • サーバーが同じ決済を 2 回送信したらどうなりますか?

    transaction_id がサイト内で決済を特定するため、2 回目の送信には重複として応答し、新たには何も記録しません。タイムアウト後の再試行も安全です。