全てのページ
GitBook提供
1 / 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

コンプリメンタリプロトコル

ヒューリスティックコントラクティング(P1)

クリアリング・ペイメント(P1)

Protocol

本プロトコルは ODS-RAM の DCS「Heuristic Contracting」に対応する Complementary Protocol であり、「サードパーティの電子契約アプリケーションを通じて利用条件・契約条件の定義・合意形成を支援するインターフェース(契約そのものは含まない)」を担う。

「ヒューリスティックコントラクティング(Heuristic Contracting)」プロトコル仕様書は、2026年度に公開予定である。

Overview(概要)

Protocol

Overview(概要)

クリアリング・ペイメントは、サードパーティの電子決済アプリケーションを通じてデータ取引の実績を記録・照合して精算・課金/決済するインターフェース(清算・課金/決済そのものの機能は含まない)を提供する。本プロトコルはComplementary Protocolsの1つとして、Open Dataspacesを実現するための補完的な機能である。

本レイヤは以下の領域を対象とする:

  • 精算(Clearing) データ交換における、提供者と利用者間の取引を記録し、利用量と料金モデルに基づく精算処理を行う。なお、記録した取引は、ロギング機能を利用して収集したデータ交換の取引実績と比較することにより、精算対象を確認する。

  • 課金/決済(Payment) 決済処理に必要な情報を提供する。なお、実際に決済を処理する機能については対象外である。

Abstract Normative Specification(抽象仕様)

Concepts and Roles(概念および役割)

本プロトコルに必要な概念は以下である。

概念
説明
  • Open Dataspacesを介した処理における精算(Clearing)

  • Open Dataspacesを介した処理における課金/決済(Payment)

  • shall: 精算機能は、複数の証跡情報を突合して精算対象の取引実績を決定しなければならない。証跡情報は少なくとも (a) Dataspace Fundamental Services(DFS)の証跡、(b) 提供者申告、(c) 利用者申告を含まなければならない。

    • Rationale: データスペースの構成(連邦型・分散型)により、単一情報のみでは精算対象の正当性が担保できないため。

  • should: 証跡情報の (a) DFSの証跡、(b) 提供者申告、(c) 利用者申告、全て一致する場合に精算対象とすることを原則とする。

  • should: 決済の方式は、提供者が提示する決済方式から利用者が選択し、事前に取り決めることを原則とする。

    • Rationale: 一般的な商習慣に従うため。

  • should: 決済処理に必要な情報は、精算処理の結果を基にすることを原則とする。

  • Transaction(L2)を介して、本機能が利用されることを前提とする。

  • Identity & Trust(L3)のトークンを用いて、本機能が利用されることを前提とする。

  • データ交換における、提供者と利用者間の各取引は、X-TrackingIDにて一意に特定できることを前提とする。

種類
送信元 ⇒ 送信先
説明

Clearing and Paymentを利用する際の、メッセージ交換シーケンスを以下に示す。

本プロトコルで使用されるエラー処理について記す。

エラー種別
説明
エラー発生時の対応
  • CRYPTREC暗号リスト

Rationale: 証跡間に矛盾が存在する場合、精算機能が自動で精算対象を確定してはならないため。

  • may: Industry Service(IS)の情報は、必要に応じて使用してもよい。

    • Rationale: 業務要件に応じた柔軟実装を許容するため。

  • may: 精算結果の状態は、必要に応じて定義し、管理してもよい。

    • Rationale: 複数の証跡情報を突合して精算対象の取引実績を決定するにあたり、状態管理の実装を許容するため。

  • may: 保持するデータを暗号化する場合、CRYPTRECが推奨する暗号方式等の標準的な暗号技術を、必要に応じて参照・採用してもよい。

    • Rationale: 運用要件に合わせた暗号化技術の採用を、検討可能とするため。

  • Rationale: 一般的な商習慣に従うため。
  • may: 決済処理機能は、外部の決済サービスを活用してもよい。ただし、外部の決済サービスを選定した際には、当該サービスとの連携方法や必要な制御については、精算決済機能側でカスタマイズを行うことを原則とする。

    • Rationale: 業務要件に応じた柔軟実装を許容するため。また、決済サービスごとの差異を吸収し、精算決済機能としての一貫した提供を可能とするため。

  • may: 保持するデータを暗号化する場合、CRYPTRECが推奨する暗号方式等の標準的な暗号技術を、必要に応じて参照・採用してもよい。

    • Rationale: 運用要件に合わせた暗号化技術の採用を、検討可能とするため。

  • 権限不足エラー

    必要な権限不足等において返却される。

    該当操作が許可されていない旨を通知する。なお、再送しても成功しないため再送信は行わない。

    リソース存在エラー

    該当リソースが存在しない等において返却される。

    リソースが存在しない旨を通知する。なお、再送しても成功しないため再送信は行わない。

    データ不整合エラー

    重複データ、排他制御等において返却される。

    最新のデータを再取得し、競合を解消させたうえで、再送信を行う。

    リクエスト形式エラー

    サポートされないリクエスト形式指定時において返却される。

    正しいContent-Typeを設定し、再送信を行う。

    システムエラー

    サーバ内部において何らかの異常発生時に返却される。

    継続的に発生する場合はシステム管理者へ通知を行う。なお、再送信については行った操作によって実行要否を行う。

    Data Provider(データ提供者)

    データ利用者に対してデータストアに格納されたデータを送信する主体。

    Data Consumer(データ利用者)

    データ提供者からデータを受信する主体。

    Payment Service(決済サービス)

    データ提供者が本プロトコル外で選択する決済処理を行う主体。

    Request

    クライアント(Transaction(L2)) ⇒ サーバー(Clearing and Payment)

    クライアントが精算決済の各機能を実行するために送信するメッセージ。認証情報や要求パラメータを含む。

    Response

    サーバー(Clearing and Payment) ⇒ クライアント(Transaction(L2))

    サーバー(Clearing and Payment)がリクエストに対する結果を送信するメッセージ。処理結果、エラー情報などを含む。

    リクエスト不正

    パラメータ不正、必須項目欠落等において返却される。

    入力内容を再確認し、正しい入力内容を設定し、再送信を行う。

    トークン設定に関するエラー

    アクセストークン未設定、無効等において返却される。

    アクセストークンを再取得および再設定(必要に応じて再ログインまたはトークン更新)し、再送信を行う。

    参照元

    Scope(適用範囲)

    Normative Requirements(規定要件)

    精算(Clearing)

    課金/決済(Payment)

    Non-functional / Cross-layer Requirements(非機能要件 / クロスレイヤ要件)

    Message Types(メッセージ種類)

    Protocol Flow(プロトコルフロー)

    Error Handling(エラー処理)

    References(参考文献)

    Binding

    実際の通信方式(HTTPS、ファイル転送、WebSocket等)に当てはめたときの定義を記述する。 以下に記述する内容は全てNon-normative(例示)である。

    Concrete Specification(実装例)

    Prerequisites(前提条件)

    • 本プロトコルは HTTPS(TLS 1.2以上)を使用し、REST形式のHTTPリクエスト/レスポンスにより通信を行う。

    • エンドポイント:指定されたURIに対してHTTPメソッド(GET, POST, PUT, DELETE)を使用

    • データ形式:リクエストおよびレスポンスの本文はJSON形式

    • 認証・認可:OAuth 2.0ベースのトークン認証を利用

    • セキュリティ要件:TLS 1.2以上必須、暗号化通信を保証

    本プロトコルで使用される各フィールドの定義を記す。

    各フィールドについて、以下の情報を記す。

    • フィールド名:binding内で使用される名称

    • 型:データ型(例:整数、文字列)

    • 必須性:フィールドの利用条件

    Request・Responseのフィールドは、以下の通り。

    フィールド名
    型
    必須
    Request
    Response
    説明

    Request・Responseのフィールドは本プロトコルの各機能で異なるため、の記載を参照してください。

    Sent by・Resulting state(s)・Request・Response・Example・Error一覧・API固有のフィールド定義などの具体実装はの記載を参照してください。

    機能分類
    機能概要
    説明
    • Loggingからのログ出力タイミングに合わせて、購入確定処理を実行する。

    • 利用者からのデータ交換ステータスが交換完了、提供者からのデータ交換ステータスが交換完了、データ交換ログのステータスが成功、となったTransactionを請求予定額、支払い予定額の対象とする。

    • データ提供者が、指定したデータ利用者との取引情報について、期間・精算決済状態で絞り込み、取得する。

    R = Required(必須)
  • C = Conditional(条件付き必須)

  • O = Optional(任意)

  • Request:リクエストにおいて使用される

  • Response:レスポンスにおいて使用される

  • 説明:フィールドの意味や利用方法

  • クライアントアプリごとに払い出されたAPIKeyを指定する。ODS独自項目

    Authorization

    String

    R

    ✔

    アクセストークンを指定する。例:Bearer < token >

    Content-Type

    String

    R

    ✔

    ✔

    リクエスト形式を指定する。

    User-Agent

    String

    R

    ✔

    クライアントのユーザーエージェントを指定する。

    Accept-Language

    String

    O

    ✔

    クライアントの受け入れる希望言語を指定する。

    X-TrackingID

    String

    R

    ✔

    ✔

    リクエストのトレーシングを行う一意なIDを指定する。ODS独自項目

    Content-Security-Policy

    String

    R

    ✔

    コンテンツの読み込み・実行ポリシーを指定し、スクリプトやリソースの許可元を制御する。

    X-Content-Type-Options

    String

    R

    ✔

    ブラウザのMIMEタイプ推測を禁止し、指定されたContent-Typeを強制する。

    Strict-Transport-Security

    String

    R

    ✔

    指定期間、HTTPS接続を強制し、HTTPへのダウングレードを防止する。

    Cache-Control

    String

    R

    ✔

    キャッシュ制御のための方式を指定する。

    ETag

    String

    C

    ✔

    リソースのバージョン識別子を指定する。GETメソッドにおけるレスポンス時の必須項目。

    Last-Modified

    String

    C

    ✔

    リソースの最終更新日時を指定する。GETメソッドにおけるレスポンス時の必須項目。

    取引情報

    データ交換状態登録・更新

    データ利用者及びデータ提供者から、取引状態(成功/失敗)を登録する。

    取引情報

    決済状態取得

    データ提供者が取引情報に係る決済状態を確認する。

    請求・支払

    請求予定額取得

    データ提供者の請求予定額を取得する。

    請求・支払

    支払予定額取得

    データ利用者の支払予定額を取得する。

    x-payment-api-key

    String

    R

    ✔

    利用料モデル

    利用料モデル登録・取得・更新・削除

    サービス利用に際し、価格情報となる利用料モデルに係る操作を行う。利用料モデルは、データ提供者/データ利用者/交換対象データ毎に定義するものとする。

    取引情報

    取引可否確認

    サービス利用に際し、取引が可能かを確認する。取引可否を確認する際に、取引IDを発行して、その後の取引情報を管理する。

    API仕様書
    API仕様書

    Field Definitions(フィールド定義)

    Headerフィールド定義

    Payloadフィールド定義

    Functional Description(機能詳細)

    Sequence Diagram(シーケンス図)

    利用料モデル登録・更新・取得・削除シーケンス

    購入処理シーケンス

    購入確定処理シーケンス

    決済処理シーケンス

    決済状態取得シーケンス