リクエスト
| Field | Type | Required | Description |
|---|---|---|---|
session_id | string | Yes | 終了するセッション ID |
reason | string | Yes | セッション終了の理由 |
termination_context | object | No | 終了に関する追加コンテキスト |
終了理由
| Reason | Meaning | Typical Initiator |
|---|---|---|
handoff_transaction | ユーザーが購入を完了したい | ブランドエージェント(pending_handoff 経由) |
handoff_complete | 会話が自然に終了 | ブランドエージェント |
user_exit | ユーザーが明示的に会話を終了 | Host |
session_timeout | 非アクティブのタイムアウト到達 | Host |
host_terminated | ポリシー/エラー理由でホストが終了 | Host |
Termination Context オブジェクト
追加詳細は理由によって異なります:handoff_transaction の場合:
user_exit の場合:
session_timeout の場合:
レスポンス
| Field | Type | Description |
|---|---|---|
session_id | string | どのセッションが終了したかの確認 |
terminated | boolean | 成功時は常に true |
acp_handoff | object | 取引ハンドオフ時に含まれる |
follow_up | object | 将来のエンゲージメント向けの任意アクション |
ACP Handoff オブジェクト
取引終了の場合、ACP チェックアウトに必要なデータを含みます:| Field | Type | Description |
|---|---|---|
checkout_url | string | ブランドの ACP チェックアウトエンドポイント |
payload | object | ACP に渡すデータ |
expires_at | string | チェックアウトコンテキストの ISO 8601 形式の有効期限 |
Follow-Up オブジェクト
将来のエンゲージメントに向けた提案:| Field | Type | Description |
|---|---|---|
suggested_action | string | ホストが次に行うべきこと |
data | object | そのアクションに関する関連データ |
message | string | 表示用の任意メッセージ |
例
トランザクションハンドオフ
type: "transaction" の pending_handoff を受け取った後:
Request:
Conversation Complete (No Purchase)
トランザクションなしで会話が自然に終わる場合: Request:ユーザー退出
ユーザーが話題を変える、または明示的に離脱する場合: Request:セッションタイムアウト
非アクティブによるタイムアウトの場合: Request:ホストによる終了
ホストがポリシーやエラー理由でセッションを終了する場合: Request:ACP 連携フロー
理由がhandoff_transaction の場合:
- ホストは終了レスポンスで
acp_handoffを受け取る - ホストは提供された
checkout_urlとpayloadを使って ACP チェックアウトを開始する - ACP がトランザクションを処理し、ユーザーとホストの信頼関係を維持する
- ブランドは加盟店にはならず、支払いは ACP が処理する
キーポイント
- 常にセッションを終了する - 会話が終わったように見えても terminate を呼び、リソースクリーンアップとフォローアップ提案を得る。
-
ACP ハンドオフデータには有効期限がある -
expires_atフィールドがチェックアウトコンテキストの有効期間を示す。 - フォローアップで再エンゲージメントを促す - 取引がない終了でも将来のエンゲージメント提案を含められる。
- ホストが信頼を維持する - 取引は ACP を経由し、ユーザーとホストの関係性を保つ。