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

テンプレートを使用を選択すると、データ変換のユースケースを含むテンプレートライブラリーを参照できます。または、ゼロから作成を選択してデフォルトのコードテンプレートを読み込みます。
ゼロから作成する場合は、変換の送信先を選択します。テンプレートライブラリーからコードテンプレートを挿入することもできます。
送信先の詳細
- POST: Track users: ソースプラットフォームからのWebhookを、属性、イベント、購入などのユーザープロファイル更新に変換します。
- PUT: Update multiple catalog items: ソースプラットフォームからのWebhookをカタログアイテムの更新に変換します。
- DELETE: Delete multiple catalog items: ソースプラットフォームからのWebhookをカタログアイテムの削除に変換します。
- PATCH: Edit multiple catalog items: ソースプラットフォームからのWebhookをカタログアイテムの編集に変換します。
- POST: Send messages immediately via API Only: ソースプラットフォームからのWebhookを変換し、指定したユーザーに即座にメッセージを送信します。

変換を作成すると、変換の詳細ビューが表示されます。ここでは、Webhookの詳細の下にこの変換に対して受信した最新のWebhookが表示され、変換コードの下に変換コードを記述するスペースが表示されます。
次のステップで使用するWebhook URLをコピーします。
ステップ2:Stripe webhookを設定する
Stripeのwebhookドキュメントの手順に従って、webhookを設定します。
データ変換のwebhook URLを宛先URLとして追加し、Brazeに送信するイベントタイプを選択します。イベントタイプの完全なリストについては、Stripeのドキュメントを参照してください。

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

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

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"
}
}
Data Transformationのユースケース
以下は、Stripe webhookペイロードの例を使用して構築されたテンプレートの例です。これらのテンプレートは出発点として使用できます。ゼロから始めることも、必要に応じて特定のコンポーネントを削除することもできます。
このテンプレート例では、Brazeプロファイルにカスタムイベントを記録しています。イベントタイプがカスタムイベント名として送信され、データオブジェクトがイベントプロパティとして渡されます。
ユースケース:顧客を識別子として使用する
このテンプレート例では、顧客フィールドを識別子として使用しています。
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
/* 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"
}
}
]
}
監視とトラブルシューティング
トランスフォーメーションの監視とトラブルシューティングの詳細については、トランスフォーメーションを監視するを参照してください。