画面上の入力を収集する非公開プレビュー
Terminal を使用して、顧客から入力を収集します。
利用可能な国: server-driven integration and client Terminal SDKs を使用する Stripe S700 および BBPOS WisePOS E でサポートされているすべての国。
プライベートベータ版
この機能の旧称は On-Reader Forms です。サーバーサイドまたはクライアントサイドの Terminal SDK で利用できる Collect Inputs の非公開ベータ版へのアクセスをご希望の場合は、メールにてお問い合わせください。
入力を収集する
Terminal スマートリーダーでは、支払いを回収する以外にフォームを表示して、顧客から情報を収集することができます。Stripe API に対してリクエストを行うと、API はリーダーと通信して、事前構築された UI を表示し、顧客の入力を収集します。バックエンドには、Webhook を使用して、顧客のレスポンスが通知されます。
Terminal のスマートリーダーを使用して入力を収集するには、collect_inputs コマンドを使用します。一度に最大 5 件の入力を指定でき、リーダーはそれらを順番に収集します。Stripe のスマートリーダーは現在、以下の 6 つの入力タイプをサポートしています。
selection
入力タイプでは、顧客に提示する選択項目を最大 4 つまで表示できます。signature
入力タイプでは、リーダーのタッチスクリーンを使用して署名を収集することができます。email
入力タイプでは、顧客からメールアドレスを収集できます。phone
入力タイプでは、顧客から電話番号を収集できます。text
入力タイプでは、顧客から追加情報を収集できます。numeric
入力タイプでは、顧客から追加情報を収集できます。

対応している入力タイプ。
すべての入力タイプでデザインと動作をカスタマイズすることができます。
- 重要な入力が確実に収集されるように、必須として設定します。必須の入力では、スキップボタンは非表示になります。
- custom_text を使用して、リーダー画面で入力ごとに表示するテキストを指定し、顧客にコンテキストを提供します。
- テキストに改行を使用して、書式を改善します。
- 顧客がブール値オプション、契約、またはオプトインを有効または無効にできる最大 4 つの トグル を追加します。
フィールド名 | フィールドの場所 | 最大文字数 |
title | 40 | |
description | 500 | |
selection フォームで使用される場合 | ||
description | 100 | |
他のタイプのフォームで使用される場合 | ||
submit_ | 300 | |
skip_ | 14 | |
title | 50 | |
description | 50 | |

メールと選択フォームの切り替え
選択入力の場合、さらにカスタマイズすることができます。顧客に表示する選択項目を指定する際に style パラメーターを使用して、選択項目の強調や強調解除ができます。

1 次および 2 次の選択項目のスタイル
リクエストには、入力のリストのほかにメタデータを含めることができます。リクエストペイロードには指定されたメタデータが含まれ、同期レスポンスと、成功または失敗の Webhook の両方に表示されます。顧客 ID や注文 ID などの一意の ID を含めることで、受信する Webhook の特定や処理を簡単にすることができます。
プライベートプレビュー
collect_
プレビュー機能を使用するには、terminal_
ヘッダーを含める必要があります。ヘッダーを省略した場合、reader オブジェクトの collect_inputs オブジェクトは API レスポンスに含まれません。
注
collect_
を使用して、機密データ (保護された健康情報や顧客の決済カード情報など)、または法律によって制限されている情報を収集することはできません。
顧客とのやり取り
リーダーが入力の収集を開始すると、顧客には、指定したリストの最初の入力が表示されます。次に進むには、顧客は選択または署名を行うか、キーボードを使用して必須項目を入力する必要があります。入力がオプションである場合、顧客は次の入力リクエストにスキップすることができます。
顧客が入力の送信またはスキップを完了すると、リーダーオブジェクトは更新され、terminal.
Webhook が送信されます。リーダーは 3 秒間インタースティシャル状態に移行し、次のリクエストに移動できるようになります。3 秒後、リーダーはスプラッシュスクリーンに戻ります。
注
お客様は、この機能の使用に対して適用され、該当する法律と規制のすべてを理解してこれに準拠する責任をすべて負うものとされ、その使用に関連して、規定に従い、必要なすべての同意、承認、ライセンス、権利および許可を取得する必要があります。Terminal スマートリーダ-によって収集される入力、またはスマートリーダーから表示される出力を使用して顧客と契約を結ぶ場合、または顧客に通知を提供する場合、その契約または通知の法的な妥当性と法的強制力を確保することは、お客様の責任になります。
入力データを受信する
以下の curl コマンドを例として使用して、収集した入力項目を受信する Webhook エンドポイントを作成します。
curl https://api.stripe.com/v1/webhook_endpoints \ -u
: \ --header "Stripe-Version: 2025-02-24.acacia; terminal_collect_inputs_beta=v2" \ --data-urlencode "url"="https://example.com/webhook/endpoint" \ --data-urlencode "api_version"="2025-02-24.acacia;terminal_collect_inputs_beta=v2" \ --data-urlencode "enabled_events[]"="terminal.reader.action_succeeded" \ --data-urlencode "enabled_events[]"="terminal.reader.action_failed"sk_test_BQokikJOvBiI2HlWgH4olfQ2
注意
Webhook エンドポイントは、Stripe の /v1/webhook_endpoints APIで直接作成する必要があります。Stripe CLI または Stripe サーバーサイド SDK を使用して Webhook エンドポイントを作成した場合、collect_inputs オブジェクトは完全な結果を返しません。Webhook ペイロードに collect_
オブジェクトが存在することを確認するには、Webhook エンドポイントを作成するときに、リクエストヘッダーに terminal_
を含め、api_
プロパティを設定します。
既存の Webhook を更新して、収集された入力項目のリッスンを開始することはできません。新しい Webhook を作成する必要があります。
入力の収集またはスキップが完了すると、Stripe は、リクエストを Webhook エンドポイントに送信します。リクエストペイロードは、collect_inputs を呼び出す場合のレスポンスと同じですが、いくつかのパラメーターが追加されています。
- 署名タイプの入力の場合、値は、署名の画像を SVG 形式で取得するファイルの ID です。
- 選択タイプの入力の場合、id と text は、選択した選択肢の
id
とtext
に対応します。 - 電話、メール、テキスト、数値の各インプットの値は、顧客のレスポンスの文字列になります。
- 顧客がオプションの入力をスキップした場合、skipped パラメーターが
true
に設定されます。 - 各トグルの
value
には、enabled
またはdisabled
が入力されます。
Webhook に登録して、利用可能になり次第、収集済みの入力を受信します。バックエンドが Webhook の使用に失敗した場合、バックアップとして terminal_
リクエストヘッダーを使用してリーダーを取得できます。
Stripe は、2 つの Webhook を送信して、リーダーのステータスをバックエンドに通知します。
terminal.
:reader. action_ succeeded collect_
アクションが成功したときに送信されます。inputs terminal.
:reader. action_ failed collect_
アクションが失敗したときに送信されます。これには、リーダー画面が 2 分間タッチされないと発生するタイムアウトが含まれます。inputs
構築したシステムをテストする
非公開ベータが承認されて有効になったら、シミュレート済みのリーダーを使用して実装をテストできます。
ベータ SDK
Stripe のいずれかのサーバー側の SDK を使用する場合は、ベータ版をインストールする必要があります。インストールの手順については、使用するサーバー SDK に関する GitHub のページをご覧ください。
SDK の API バージョンを設定して、前述のベータヘッダーを含める必要もあります。言語固有の実行方法の例をご覧ください。