TROCCOがStripeのデータ転送に対応しました
Stripeとは?
Stripeは、オンライン決済処理を提供するSaaS(Software as a Service)です。企業や個人が簡単にクレジットカード決済や銀行振込、デジタルウォレット(Apple Pay, Google Pay など)を導入できるプラットフォームです!
TROCCOとは?
TROCCOは、データの連携・変換をスムーズに実現するクラウド型データ統合ツールです。
執筆者はTROCCOのカスタマーサクセスエンジニアをしています。
TROCCOでStripe??何ができるの??
コードを書かずに、Stripe APIから抽出したデータを
任意のサービスにデータを転送することができます。
次の2ステップでStripe→DWHへのデータ転送が可能です。
- 画面上でStripeから取得したいデータを選ぶ
- データの格納先の情報を入れる(今回はSnowflakeのテーブル)
設定を作成したら、実行。
Snowflakeにデータが格納されました!!
TROCCOの転送元Stripeで取得できるもの
2025/02現在、以下のエンドポイントからデータを取得可能です。
※まとめをAIにお任せしたので、間違いがあるかもしれません
API名(英語) | 管理画面上の表示(日本語) |
---|---|
Customers | 顧客 |
Checkout Sessions | チェックアウトセッション |
Setup Attempts | セットアップ試行 |
Accounts | アカウント |
Shipping Rates | 配送料 |
Balance Transactions | 残高取引 |
Files | ファイル |
File Links | ファイルリンク |
Refunds | 返金 |
Payment Methods | 支払い方法 |
Credit Notes | クレジットノート |
Early Fraud Warning | 早期不正警告 |
Authorizations | 認証 |
Cardholders | カード所有者 |
Charges | 支払い |
Coupons | クーポン |
Disputes | 支払い異議 |
Application Fees | アプリケーション手数料 |
Invoices | 計算書 |
Invoice Items | 計算書アイテム |
Payouts | 振込 |
Plans | プラン |
Prices | 価格 |
Products | 商品 |
Reviews | レビュー |
Subscriptions | 定期支払い |
Subscription Schedule | 定期支払いスケジュール |
Transfers | 振替 |
Payment Intents | 支払いインテント |
Promotion Codes | プロモーションコード |
Setup Intents | セットアップインテント |
Transactions | 取引 |
Top-ups | チャージ |
Subscription Items | 定期支払いアイテム |
External Accounts | 外部アカウント |
Customer Balance Transactions | 顧客残高取引 |
Person | 個人 |
Cards | カード |
Application Fee Refunds | アプリケーション手数料の返金 |
Bank Accounts | 銀行口座 |
Invoice Line Item | 計算書明細項目 |
Transfer Reversals | 振替の取消 |
TROCCOを使って、Stripeの請求データをSnowflakeに転送してみます!!
TROCCOを使って請求書データをSnowflakeに転送する
invoice(請求書)のデータを抽出するよう指定します。画面から選ぶだけです。
TROCCO上でデータの加工もできますが、今回はなにもせず、そのままの形で転送します。
参考)invoiceのカラム一覧
カラム名 | 日本語訳 |
---|---|
id | ID |
object | オブジェクト |
auto_advance | 自動更新 |
automatic_tax | 自動税計算 |
charge | チャージ |
collection_method | 収集方法 |
currency | 通貨 |
customer | 顧客 |
description | 説明 |
hosted_invoice_url | 請求書URL |
lines | 明細行 |
metadata | メタデータ |
payment_intent | 支払いインテント |
period_end | 期間終了 |
period_start | 期間開始 |
status | ステータス |
subscription | サブスクリプション |
account_country | アカウント国 |
account_name | アカウント名 |
account_tax_ids | アカウント税ID |
amount_due | 支払金額 |
amount_paid | 支払済み金額 |
amount_remaining | 残額 |
amount_shipping | 送料 |
application | アプリケーション |
application_fee_amount | アプリケーション手数料 |
attempt_count | 試行回数 |
attempted | 試行済み |
automatically_finalizes_at | 自動確定時刻 |
billing_reason | 請求理由 |
created | 作成日時 |
custom_fields | カスタムフィールド |
customer_address | 顧客住所 |
customer_email | 顧客メール |
customer_name | 顧客名 |
customer_phone | 顧客電話番号 |
customer_shipping | 顧客配送情報 |
customer_tax_exempt | 顧客の税免除 |
customer_tax_ids | 顧客税ID |
default_payment_method | デフォルト支払い方法 |
default_source | デフォルトの支払い元 |
default_tax_rates | デフォルト税率 |
discount | 割引 |
discounts | 割引一覧 |
due_date | 期限日 |
effective_at | 適用日時 |
ending_balance | 期末残高 |
footer | フッター |
from_invoice | 元の請求書 |
invoice_pdf | 請求書PDF |
issuer | 発行者 |
last_finalization_error | 最終確定エラー |
latest_revision | 最新の改訂 |
livemode | ライブモード |
next_payment_attempt | 次回支払い試行日時 |
number | 請求書番号 |
on_behalf_of | 代理請求先 |
paid | 支払い済み |
paid_out_of_band | 手動支払い済み |
payment_settings | 支払い設定 |
post_payment_credit_notes_amount | 支払い後のクレジットメモ金額 |
pre_payment_credit_notes_amount | 支払い前のクレジットメモ金額 |
quote | 見積もり |
receipt_number | 領収書番号 |
rendering | 表示設定 |
shipping_cost | 送料 |
shipping_details | 配送詳細 |
starting_balance | 期首残高 |
statement_descriptor | 明細記載情報 |
status_transitions | ステータス遷移 |
subscription_details | サブスクリプション詳細 |
subscription_proration_date | サブスクリプション日割り適用日 |
subtotal | 小計 |
subtotal_excluding_tax | 税抜小計 |
tax | 税額 |
test_clock | テストクロック |
threshold_reason | 閾値理由 |
total_discount_amounts | 割引合計 |
total_excluding_tax | 税抜合計 |
total_tax_amounts | 税合計 |
transfer_data | 振替データ |
webhooks_delivered_at | Webhook配信日時 |
Snowflake上で請求書データから未払請求書を特定してみる
クエリを書いて、TROCCOで転送したデータから未払請求書のデータを取り出してみます。
未払いの請求書は、statusがopenまたはuncollectibleのものを指します。
ステータス | 説明 |
---|---|
draft |
下書き状態(顧客には未送信) |
open |
発行済み・未払いの状態 |
paid |
支払い完了 |
uncollectible |
未回収(回収不能と判断されたもの) |
void |
無効化された請求書(支払い不可) |
詳しくはこちら
https://docs.stripe.com/invoicing/overview?locale=ja-JP#invoice-lifecycle
クエリ
SELECT
"id",
"customer",
"amount_due",
"currency",
"due_date",
"status",
TO_TIMESTAMP("due_date"),
CURRENT_TIMESTAMP
FROM DEMO_SHANAI.PUBLIC."demotable_stripe_invoice"
WHERE
("status" = 'open' AND TO_TIMESTAMP("due_date") < CURRENT_TIMESTAMP())
OR
("status" = 'uncollectible')
ORDER BY "due_date" ASC;
ポイント
- 画面上Past Due(期限切れ未払い)と表示されているものの、status値はopen
- 期限(due_date)と現在日付を比較し抽出する必要がある
- 期限(due_date)はUNIXTIME
未払いの請求書を特定することができました!!
※uncollectibleのテストデータは作れませんでした…
取得したIDを画面から検索しましたが、Past Due(期限切れ未払い)のものが取得できています
まとめ
いかがでしたでしょうか。TROCCOを利用することで、Stripeから簡単にデータを転送できました
今回はStripeのデータを単体でクエリしましたが、Salesforce等の営業データと組み合わせることで、収益・顧客行動・営業の成果分析にも繋げられそうと思いました。
この記事を見てくださった方に、なにか少しでもお役に立てていたらならば幸いです🙏