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

API の利用開始

PocketSign Platform に登録する

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

テナントの作成

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

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

左側のメニューから「テナント」をクリックし、テナント一覧画面で「テナントを作成」をクリックします。

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

「ポケットサイン開発環境」を選択し、テナント名を入力して「テナント作成」をクリックします。

ポケットサイン開発環境を選択したテナント作成ダイアログ

テナント一覧に作成したテナントが表示されることを確認します。

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

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 リファレンスを参照して、その他の機能を確認しましょう。 ブラウザ上でポケットサイン開発環境へのリクエストを試すこともできます。

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