1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TROCCOでStripeの請求書データを転送してみた

Last updated at Posted at 2025-02-21

TROCCOがStripeのデータ転送に対応しました:sparkles:

Stripeとは?

Stripeは、オンライン決済処理を提供するSaaS(Software as a Service)です。企業や個人が簡単にクレジットカード決済や銀行振込、デジタルウォレット(Apple Pay, Google Pay など)を導入できるプラットフォームです!

TROCCOとは?

TROCCOは、データの連携・変換をスムーズに実現するクラウド型データ統合ツールです。
執筆者はTROCCOのカスタマーサクセスエンジニアをしています。

TROCCOでStripe??何ができるの??

コードを書かずに、Stripe APIから抽出したデータを
任意のサービスにデータを転送することができます。

image.png

次の2ステップでStripe→DWHへのデータ転送が可能です。

  • 画面上でStripeから取得したいデータを選ぶ
  • データの格納先の情報を入れる(今回はSnowflakeのテーブル)

stripe_to_snowflake_demo_20250221.gif

プレビューが表示されるので、そのまま保存。
image.png

設定を作成したら、実行。
Snowflakeにデータが格納されました!!
image.png

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に転送してみます!!

image.png
(スクリーンショットはsandbox環境です)

TROCCOを使って請求書データをSnowflakeに転送する

invoice(請求書)のデータを抽出するよう指定します。画面から選ぶだけです。
image.png

Snowflakeの設定はこのような感じです。
image.png

TROCCO上でデータの加工もできますが、今回はなにもせず、そのままの形で転送します。

ジョブを実行して、データ転送は完了です。
image.png

参考)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

実行結果
image.png

未払いの請求書を特定することができました!!
※uncollectibleのテストデータは作れませんでした…

取得したIDを画面から検索しましたが、Past Due(期限切れ未払い)のものが取得できています:sparkles:
image.png
image.png

まとめ

いかがでしたでしょうか。TROCCOを利用することで、Stripeから簡単にデータを転送できました:cherry_blossom:
今回はStripeのデータを単体でクエリしましたが、Salesforce等の営業データと組み合わせることで、収益・顧客行動・営業の成果分析にも繋げられそうと思いました。

この記事を見てくださった方に、なにか少しでもお役に立てていたらならば幸いです🙏

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?