共通インターフェース情報
API レスポンスは、HTTP ステータスコードによってリクエスト処理の成功または失敗を示します。
API メッセージ構造
API リクエストおよびレスポンスメッセージは JSON 形式でフォーマットされ、UTF-8 でエンコードされます。メッセージはヘッダーとボディの 2 つの部分で構成されます。 ディストリビューター(Waffo Point Topup)からサプライヤーへの API リクエスト例:X-SIGNATURE は、Waffo Point Topup が自身の秘密鍵でボディメッセージ全体に署名した値です。
サプライヤーの API レスポンス例:
X-SIGNATURE は、サプライヤーが自身の秘密鍵でボディメッセージ全体に署名した値です。リクエストが失敗した場合、data は空になります。
API セキュリティ
Waffo Point Topup とサプライヤー間のメッセージの非否認性を確保するために、トランザクションの署名と検証を行います。署名アルゴリズムには SHA256WithRSA を使用します。1
サプライヤーのオンボーディング段階
Waffo とサプライヤーは、まず相互に RSA 公開鍵を交換します。各当事者は自身の RSA 秘密鍵を厳重に保管し、公開鍵のみを相手側と共有します。
2
API リクエスト段階
Waffo は自身の RSA 秘密鍵を使用してメッセージに署名し、サプライヤーに送信します。サプライヤーは Waffo の公開鍵を使用してメッセージを検証します。検証に成功した場合、サプライヤーは Waffo のリクエストを処理します。検証に失敗した場合、サプライヤーは Waffo に対して
Invalid Signature(無効な署名)というエラーを返します。3
API レスポンス段階
サプライヤーは自身の RSA 秘密鍵を使用してレスポンスメッセージに署名し、Waffo に返信します。Waffo はサプライヤーの公開鍵を使用してメッセージを検証します。検証に成功した場合、Waffo はサプライヤーのレスポンスを処理します。検証に失敗した場合、Waffo は調査を行い、サプライヤーに連絡します。その間、問題が解決するまで、Waffo はサプライヤーへの新規トランザクションの送信を停止します。 これは、サプライヤー側でリクエストの処理が完了しているにもかかわらず、署名検証の失敗により Waffo 側でレスポンスの処理が完了していない可能性があるためです。

エラーコード
エラーコードの接頭辞による分類:RSA 鍵の生成
サプライヤーは openssl ツールを使用して RSA 鍵ペアを生成できます。1
openssl のインストール
openssl.org/source から openssl をダウンロードしてインストールしてください。
2
鍵ペアの生成
3
公開鍵の交換
supplier_public_key.pem を Waffo に渡し、Waffo 側の公開鍵を受け取ってください。次のステップ
モード B:ポイントコード取得 API
リアルタイム取得のリクエスト・レスポンス項目と冪等性の要件。
モード C:即時履行 API
URL 署名リダイレクト、即時履行、即時履行結果照会。