メインコンテンツまでスキップ

API の利用開始

PocketSign Platform に登録する

PocketSign Verify API を利用するには、PocketSign Platform への登録が必要です。 登録がお済みでない場合は、PocketSign Platform に登録するを参照してサインアップしてください。

テナントの作成

PocketSign Platform ホーム画面から「Verify」へ移動します。

PocketSign Platformホーム画面のVerifyメニュー

左側のメニューから「テナント」をクリックします。

左側メニューのテナント画面

「テナントを作成」をクリックします。

テナントを作成ボタンが表示されたテナント一覧画面

「モック環境」を選択し、テナント名を入力して「テナント作成」をクリックします。

モック環境を選択したテナント作成ダイアログ

作成が完了したことを確認します。

テナント作成完了後のテナント一覧画面

API トークンの作成

API トークンを作成したいテナントの「テナントを開く」をクリックします。 ここでは、テナントの作成で作成したテナントの API トークンを作成します。

テナントを開くボタンが表示されたテナント一覧画面

テナント画面左側のメニューから「API トークン」へ移動します。

テナント画面左側メニューのAPIトークン

「新規作成」をクリックします。

新規作成ボタンが表示されたAPIトークン一覧画面

トークンを識別するための名称を入力し、「作成」をクリックします。

トークン名称を入力するAPIトークン作成ダイアログ

表示されたトークンを保存します。作成されたトークンは、以後再表示することができないためご注意ください。

作成されたAPIトークンが表示された画面

テストリクエストの送信

以下のようなリクエストを送信して、署名検証を試してみましょう。 <YOUR_API_TOKEN> には、前のステップで作成した API トークンを入力してください。

PocketSign Verify API は Buf CLI を使用して呼び出すことができます。 Buf のドキュメント Install the Buf CLI を参照して、Buf CLI をインストールしてください。

署名検証サンプルリクエスト
buf curl 'https://verify.mock.p8n.app/pocketsign.verify.v2.VerificationService/Verify' \
-H 'Authorization: Bearer <YOUR_API_TOKEN>' \
--schema 'buf.build/pocketsign/apis' \
--data '{
"hashAlgorithm": "HASH_ALGORITHM_SHA256",
"digest": "MV9b23bQeMQ7isAGTkoBZGErH853yGk0W/yUx1iU7dM=",
"signature": "n4bVa46x6/Ud44p7+zHMPpsTjZG7yqtnqc2WlcrOD738q+K61FdMy0aezKMsIZp8UaXanfRDExwRxHDsV1n2fACLKdNkWilNrGhOq9QqlNy5w8+n7ax2O5CQ1hiPKPjZo1wlecDl8D1z2n5ePL/VtszdqZ95QyHvPKYzE5yeDwaCd9QHMtxvbd7qkaac0RujRSdO9MUE4PoKz1YmRieysOIIf0cwHTUWmTy+++UA7itHwp/pPhiz2QWY0QGGMuDfBclISD1wuzqcXSAqOooCBOga7iqOKArYmCyRnAVUtOZJ0TKPnijhrlLe33cyvGR58YC6yBv4i9gnjuIQ7j1fZQ==",
"certificate": "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"
}'

リクエストが成功すると、以下のようなレスポンスが返ってきます。

署名検証サンプルレスポンス
{
"verification": {
"id": "80375018-3502-4eb7-b422-0898dcf140b5",
"result": "RESULT_OK",
"hashAlgorithm": "HASH_ALGORITHM_SHA256",
"digest": "MV9b23bQeMQ7isAGTkoBZGErH853yGk0W/yUx1iU7dM=",
"signature": "n4bVa46x6/Ud44p7+zHMPpsTjZG7yqtnqc2WlcrOD738q+K61FdMy0aezKMsIZp8UaXanfRDExwRxHDsV1n2fACLKdNkWilNrGhOq9QqlNy5w8+n7ax2O5CQ1hiPKPjZo1wlecDl8D1z2n5ePL/VtszdqZ95QyHvPKYzE5yeDwaCd9QHMtxvbd7qkaac0RujRSdO9MUE4PoKz1YmRieysOIIf0cwHTUWmTy+++UA7itHwp/pPhiz2QWY0QGGMuDfBclISD1wuzqcXSAqOooCBOga7iqOKArYmCyRnAVUtOZJ0TKPnijhrlLe33cyvGR58YC6yBv4i9gnjuIQ7j1fZQ==",
"createdAt": "2023-09-02T20:15:27.613966Z"
},
"certificate": {
"id": "1845533e-42ae-42db-9ed5-862dece5a4e3",
"type": "TYPE_JPKI_CARD_DIGITAL_SIGNATURE",
"createdAt": "2023-07-31T11:00:11.506906Z"
},
"certificateStatus": {
"id": "b3ee5560-206b-4871-aa67-a47389fbafd6",
"status": "STATUS_GOOD",
"checkMethod": "CHECK_METHOD_CRL",
"checkPurpose": "CHECK_PURPOSE_SIGNATURE_VERIFICATION",
"sourceUpdatedAt": "0001-01-01T00:00:00Z",
"createdAt": "2023-09-02T20:15:27.613966Z"
},
"certificateContent": {
"subject": "OU=P8N for digital signature+OU=PocketSign Inc.,O=P8N-MOCK,C=JP",
"validity": {
"notBefore": "2022-06-06T04:56:54Z",
"notAfter": "2027-06-05T04:56:54Z"
},
"crlDistributionPoint": "CN=City-0 CRLDP,OU=Prefecture-0,OU=CRL Distribution Points,OU=P8N for digital signature,O=P8N-MOCK,C=JP",
"jpkiCardDigitalSignatureContent": {
"commonName": "原 智子",
"substituteCharacterOfCommonName": "0000",
"gender": "2",
"dateOfBirth": "118991201",
"address": "北海道厚岸郡浜中町円朱別西七線6908番9999号",
"substituteCharacterOfAddress": "0000000000000000000000000"
}
}
}

最初の署名検証に成功しました 🎉


次のステップ

API リファレンスを参照して、その他の機能を確認しましょう。 ブラウザ上でモック環境へのリクエストを試すこともできます。

実際のアプリケーションでの署名検証(身元確認)は、身元確認の流れを参照してください。