Stripe
Stripe は、企業が一連の統合されたAPIやサービスを通じて、決済を受け入れ、収益オペレーションを管理し、グローバルな商取引を容易にすることを可能にする総合的な金融インフラプラットフォームです。
BrazeとStripeを統合することで、以下のことが可能になります。
- Stripeからのリアルタイムの支払いおよび請求データを使用して、Brazeのユーザープロファイルを更新できます。
- トライアルの開始、サブスクリプションの有効化、サブスクリプションのキャンセルなどのStripeイベントに基づいて、Brazeでメッセージングをトリガーできます。
- Stripe webhookを使用して受信したユーザーの支払い履歴または請求ステータスに基づいて、Brazeメッセージングをパーソナライズできます。
前提条件
| 必要条件 | 説明 |
|---|---|
| Stripeアカウント | このパートナーシップを利用するには、webhookにアクセスできるStripeアカウントが必要です。 |
| Brazeデータ変換 | Stripeからデータを受信するには、データ変換URLが必要です。 |
統合
ステップ 1: StripeのWebhookを受け入れるようにBrazeデータ変換を設定する
Braze ダッシュボードで、[データ設定] > [データ変換] に移動します。
[変換を作成] を選択して変換に名前を付け、編集エクスペリエンスを選択します。

データ変換のユースケースを含むテンプレート・ライブラリを参照するには、[テンプレートの使用] を選択します。または、”Start from scratch “を選択してデフォルトのコードテンプレートを読み込む。
ゼロから作成するのであれば、変換先を選択します。テンプレートライブラリからコードテンプレートを挿入することもできます。
More on destinations
- POST: ユーザーを追跡:ソースプラットフォームからのWebhookを、属性、イベント、購入などのユーザープロファイル更新に変換する。
- PUT: 複数のカタログ項目を更新する:ソースプラットフォームからのWebhookをカタログアイテムの更新に変換する。
- DELETE: 複数のカタログ項目を削除する:ソースプラットフォームからのWebhookをカタログアイテムの削除に変換する。
- PATCH:複数のカタログ項目を編集する:ソースプラットフォームからのWebhookをカタログアイテムの編集に変換する。
- POST: APIのみでメッセージを即座に送信する:ソースプラットフォームからのWebhookを変換し、指定したユーザーに即座にメッセージを送信する。

追加のテンプレートや送信先をご希望ですか?製品フィードバックを残すことを検討してください。
変換を作成すると、変換の詳細ビューが表示されます。ここでは、[Webhook の詳細] の下にこの変換に対して受信した最新の Webhook が表示され、[変換コード] の下に変換コードを記述するスペースが表示されます。
次のステップで使用するWebhook URLをキャプチャする。
ステップ 2: Stripe webhookを設定する
StripeのWebhookドキュメントの手順に従って、webhookを設定します。
データ変換のWebhook URLをDestination URLとして追加し、Brazeに送信するイベントタイプを選択します。イベントタイプの完全なリストについては、Stripeのドキュメントを参照してください。

次に、テストイベントをデータ変換に送信します。
ステップ 3: 選択したStripeイベントを受け入れる変換コードを記述する
次に、Stripeから送信されるWebhookペイロードをJavaScriptオブジェクトの戻り値に変換します。
- データ変換を更新し、Webhook detailsセクションにStripeテストペイロードが表示されることを確認します。
- 選択したStripeイベントをサポートするようにデータ変換コードを更新します。
- Validateを選択すると、コードの出力のプレビューが返され、
/users/trackリクエストとして受け入れ可能かどうかがチェックされます。 - データ変換を保存して有効化します。

リクエスト本文の形式
この戻り値は、/users/trackエンドポイントのリクエストボディ形式に従う必要があります。
- 変換コードはJavaScriptプログラミング言語で記述します。if/elseロジックなど、標準的なJavaScript制御フローがすべてサポートされています。
- 変換コードは、payload変数を使用してWebhookリクエストボディにアクセスします。この変数は、リクエスト本文のJSONを解析して読み込まれたオブジェクトです。
/users/trackエンドポイントでサポートされるすべての機能がサポートされています。以下が含まれます。- ユーザー属性オブジェクト、イベントオブジェクト、および購入オブジェクト
- ネストされた属性とネストされたカスタムイベントプロパティ
- サブスクリプショングループの更新
- 識別子としてのメールアドレス
ステップ 4: Stripe webhookを公開する
データ変換を作成したら、Validateを選択して、データ変換コードが正しくフォーマットされており、期待どおりに動作することを確認します。その後、データ変換を保存してアクティブ化します。アクティブ化後、ユーザーがイベントを完了すると、カスタムイベントデータがユーザーのプロファイルに記録されます。

Stripe Webhookペイロードのサンプル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
{
"headers": {
"Version": "HTTP/1.1",
"X-Datadog-Trace-Id": "9124157397962821303",
"X-Datadog-Parent-Id": "9124157397962821303",
"X-Datadog-Sampling-Priority": "2",
"Host": "xxx",
"X-Request-Id": "xxx",
"X-Real-Ip": "165.159.72.690",
"X-Forwarded-For": "161.123.56.890",
"X-Forwarded-Host": "xxx",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https",
"X-Forwarded-Scheme": "https",
"X-Scheme": "https",
"X-Original-Forwarded-For": "12.345.678.123",
"Cf-Ray": "9470a06172f8816e-IAD",
"Cache-Control": "no-cache",
"User-Agent": "Stripe/1.0 (+https://stripe.com/docs/webhooks)",
"Accept-Encoding": "gzip",
"Cf-Connecting-Ip": "12.123.456.789",
"Cf-Visitor": "{\"scheme\":\"https\"}",
"X-Worker-Executions": "1",
"Cf-Worker": "xxx",
"X-Fastly-Geoloc-Countrycode": "US",
"Stripe-Signature": "t=xxx,v1=xxxx,v0=xxxx",
"Cf-Ew-Via": "15",
"Cdn-Loop": "cloudflare; loops=1; subreqs=1",
"Accept": "*/*; q=0.5, application/xml"
},
"payload": {
"id": "evt_3RTqw0RMEOaIvYpU1k2TFajH",
"object": "event",
"api_version": "2025-04-30.basil",
"created": 1748465448,
"data": {
"object": {
"id": "ch_3RTqw0RMEOaIvYpU1M9ZYtjP",
"object": "charge",
"amount": 100,
"amount_captured": 100,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"application_fee_amount": null,
"balance_transaction": null,
"billing_details": {
"address": {
"city": null,
"country": null,
"line1": null,
"line2": null,
"postal_code": null,
"state": null
},
"email": null,
"name": null,
"phone": null,
"tax_id": null
},
"calculated_statement_descriptor": "Stripe",
"captured": true,
"created": 1748465448,
"currency": "usd",
"customer": "cus_SOeDf39aosGb97",
"description": "(created by Stripe CLI)",
"destination": null,
"dispute": null,
"disputed": false,
"failure_balance_transaction": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {},
"livemode": false,
"metadata": {},
"on_behalf_of": null,
"order": null,
"outcome": {
"advice_code": null,
"network_advice_code": null,
"network_decline_code": null,
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"risk_score": 9,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"payment_intent": "pi_3RTqw0RMEOaIvYpU1pQl3Lmp",
"payment_method": "pm_1RTqw0RMEOaIvYpU5VE8HFlp",
"payment_method_details": {
"card": {
"amount_authorized": 100,
"authorization_code": null,
"brand": "visa",
"checks": {
"address_line1_check": null,
"address_postal_code_check": null,
"cvc_check": "pass"
},
"country": "US",
"exp_month": 5,
"exp_year": 2026,
"extended_authorization": {
"status": "disabled"
},
"fingerprint": "HAKdyqJ9xh2YhbzT",
"funding": "credit",
"incremental_authorization": {
"status": "unavailable"
},
"installments": null,
"last4": "4242",
"mandate": null,
"multicapture": {
"status": "unavailable"
},
"network": "visa",
"network_token": {
"used": false
},
"network_transaction_id": "726575100121113",
"overcapture": {
"maximum_amount_capturable": 100,
"status": "unavailable"
},
"regulated_status": "unregulated",
"three_d_secure": null,
"wallet": null
},
"type": "card"
},
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
"receipt_url": "https://pay.stripe.com/receipts/payment/xxx",
"refunded": false,
"review": null,
"shipping": null,
"source": null,
"source_transfer": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "succeeded",
"transfer_data": null,
"transfer_group": null
}
},
"livemode": false,
"pending_webhooks": 3,
"request": {
"id": "req_jqtL1Q6CPaNx8x",
"idempotency_key": "f0f9aee4-a889-4fcc-bc2e-fa41fa426f05"
},
"type": "charge.succeeded"
}
}
データ変換のユースケース
以下に、Stripe Webhookペイロードのサンプルを使用して作成したテンプレートの例を示します。これらのテンプレートは出発点として使用できます。ゼロから作成するか、必要に応じて特定のコンポーネントを削除することができます。
このテンプレート例では、Brazeプロファイルにカスタムイベントを記録しています。イベントタイプはカスタムイベント名として送信され、データオブジェクトはイベントプロパティとして渡されます。
ユースケース: 識別子としての顧客
このテンプレート例では、識別子として顧客フィールドを使用しています。
/* This template is based on the source platform's documentation here: https://stripe.com/docs/webhooks
/* Braze's /users/track endpoint expects timestamps in an ISO 8601 format. To use the Unix timestamp within Stripe's charge succeeded event payload as the event timestamp in Braze must first be converted to ISO 8601. This can be done with the following code:
let unixTimestamp = payload.data.object.created;
let dateObj = new Date(unixTimestamp * 1000);
let isoString = dateObj.toISOString();
/* defines a variable 'brazecall' that will hold the request payload for the /users/track request
let brazecall;
/* if the type is charge.succeeded and customer field is not null, build the /users/track request to log an event to the user profile
if (payload.type == "charge.succeeded" && payload.data.object.customer) {
brazecall = {
"events": [
{
"external_id": payload.data.object.customer,
"name": "Charge Succeeded",
"time": isoString,
"properties": {
"amount": payload.data.object.amount,
"paid": payload.data.object.paid,
"status": payload.data.object.status
}
}
]
};
}
/* After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"events": [
{
"external_id": "[email protected]",
"name": "Charge Succeeded",
"time": "2025-05-28T18:21:39.527Z",
"properties": {
"amount": 100,
"paid":true,
"Status":"succeeded"
}
}
]
}
モニタリングとトラブルシューティング
変換のモニタリングとトラブルシューティングの詳細については、変換のモニタリングを参照してください。