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

最新の基本4情報取得の同意取り消し

ここでは、Verify SDK を使用して取得した同意取消申請データを用いて、同意を取り消す方法を説明します。

あらかじめAPI の利用開始を完了し、API トークンを取得しておいてください。

注意

テナントを作成した段階では、最新の基本4情報の取得に関係する API は無効化されているため利用できません。

利用するにはお問い合わせください。

シーケンス

アプリとバックエンドの連携

Verify SDK を用いて取得した同意取消申請データは、何らかの方法でバックエンドサーバーに共有して同意を取り消してください。

以下の実装例では、アプリとバックエンドの間での連携については省略しています。

要確認

Verify API の利用は、必ず SP 事業者で管理するサーバを経由して行ってください。 API トークンをアプリケーションに含めて配布することは、Verify API の不正利用ひいては JPKI への不正なアクセスにつながるため、絶対に行わないでください

実装例

クライアントライブラリのセットアップ方法は、クライアントライブラリをご参照ください。

package main

import (
"context"
"encoding/base64"
"fmt"
"log"
"net/http"

"buf.build/gen/go/pocketsign/apis/connectrpc/go/pocketsign/verify/v2/verifyv2connect"
verifyv2 "buf.build/gen/go/pocketsign/apis/protocolbuffers/go/pocketsign/verify/v2"
"connectrpc.com/connect"
)

var (
// APIエンドポイントを指定します。この値は環境によって異なります。
baseUrl = "https://verify.mock.p8n.app"

// Verify APIのトークンです。ご自身のトークンに置き換えてください。
token = "<YOUR_API_TOKEN>"

// 同意取消申請データです。アプリ上で作成したものを何らかの方法で予め受け取っておいてください。
rawApplication = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPOWIqeeUqOiAheWQjOaEj+WPlua2iOeUs+iri+aDheWgsT4855Sz6KuL5pu4PjznlLPoq4vml6U+MjAyNi8wNi8xMTwv55Sz6KuL5pelPjznlLPoq4vmmYLplpM+MTg6NDk6MTY8L+eUs+iri+aZgumWkz4844K144O844OT44K5SUQ+c2FtcGxlPC/jgrXjg7zjg5PjgrlJRD4844K144O844OT44K55LqL5qWt6ICFSUQ+c2FtcGxlPC/jgrXjg7zjg5Pjgrnkuovmpa3ogIVJRD48L+eUs+iri+abuD48U2lnbmF0dXJlPjxTaWduZWRJbmZvPjxDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMS9SRUMteG1sLWMxNG4tMjAwMTAzMTUiPjwvQ2Fub25pY2FsaXphdGlvbk1ldGhvZD48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiI+PC9TaWduYXR1cmVNZXRob2Q+PFJlZmVyZW5jZT48VHJhbnNmb3Jtcz48VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiPjwvVHJhbnNmb3JtPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSI+PC9UcmFuc2Zvcm0+PC9UcmFuc2Zvcm1zPjxEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiPjwvRGlnZXN0TWV0aG9kPjxEaWdlc3RWYWx1ZT5RVGljWlRteDJZNFFKbmQ2TStCU0wzdkV1Y2tJRGV5cnJPZCtxQTArNzJjPTwvRGlnZXN0VmFsdWU+PC9SZWZlcmVuY2U+PC9TaWduZWRJbmZvPjxTaWduYXR1cmVWYWx1ZT5SbnlrZmJKVzQzUWxMSkgzdjlHYXJ0S3pLbkVPa0Y5cWZDdFFlcDkzNXJ3ZnAzZVk1dC9pbU1NMG1YeTJlcTdRUW0wRVE1UFAyN1ltVHk2LzNPb0VVV3ZUK1NUS3JYbUNWWldRUGszSy9iT2VIK2E0dDEzby92cnptbXZaM3VDWjljMGtiejJjS1g1cTViUE5PY0F0ejlyclJLSmZwOWxmRDNwbnpicmZVUmdxQ2V4V0JyTFJQZ09FZkt3TjVONDBtcUF1VmZ3TmlhQkVub0Rsa0U3LzNTdzJhbGhTa2wwa0dXSzI1K2t6b2FLWE9uNjZlQ2VHc2toRUs5WkxaRmJoNjdhOVZMMDFpV3RWYVREb1JndzFJRWprRzFGNkJtZXdQZHpjeS9lbzkrd2NsVEZLMEdwRnErVWVocnJhZVVCMDg1Z0ZCaGFxS1NSbE5FTW5sck9ZNmc9PTwvU2lnbmF0dXJlVmFsdWU+PEtleUluZm8+PFg1MDlEYXRhPjxYNTA5Q2VydGlmaWNhdGU+TUlJR3VqQ0NCYUtnQXdJQkFnSVVOem93WVFBQUFBQUFBQ0FBQUFBQUFBQUFBQUF3RFFZSktvWklodmNOQVFFTEJRQXdYakVMTUFrR0ExVUVCaE1DU2xBeEVUQVBCZ05WQkFvTUNGQTRUaTFOVDBOTE1TSXdJQVlEVlFRTERCbFFPRTRnWm05eUlHUnBaMmwwWVd3Z2MybG5ibUYwZFhKbE1SZ3dGZ1lEVlFRTERBOVFiMk5yWlhSVGFXZHVJRWx1WXk0d0hoY05Nak13TkRFMU1UVXdNRFUzV2hjTk1qZ3dOREV6TVRVd01EVTNXakJjTVFzd0NRWURWUVFHRXdKS1VERVZNQk1HQTFVRUJ3d01VSEpsWm1WamRIVnlaUzB3TVE4d0RRWURWUVFIREFaRGFYUjVMVEF4SlRBakJnTlZCQU1NSERJd01qTXdOREUxTVRVd01EVTNNREF3TURBd01EQXdNREF3TURBd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUNCbzh5SDZDZEl4UDJYTnh3R3FOTWFETUorKzBHL0hPY2xxSmdqUlRCSjVrYkljT0xGRHR3aUp3a1hDS2xRNVZ2V0FyOTQ2emQ1MmN3Vy9wcmFFSGhmRG1TLzMrdHE1UzRIYTJyUkFTN1ZMNFBLSG9OMXNndG4xakhxTHpHVDZkRnFsOC83N2FwUHlXdVVGY0c1R1gxZk9tMjFIMnVlRWpBdmovZVdoRHJYN0ZWZmI4UFdra0pTbnJyU1UvdU16WFhUWURQTzFTcjlRUDVSU2VENUNkZHFIMWp1Tkxxa0FJRjEzRUdXSWh5N0FMQU5vVHYyaVpHQ1ZMc2twQ1pISlZPb28zOWRXbFlYWWdJenVZTU95YTEvVkROUnpiam5LWXppVXp6L1RTNytvdmlYTGlFcVc1RS9aUm0zMkpvSmFhZXNzRWxMejZTNUZJdTV3MXYraGY5OUFnTUJBQUdqZ2dOd01JSURiREFPQmdOVkhROEJBZjhFQkFNQ0JzQXdnZkVHQTFVZEVRU0I2VENCNXFBY0Jnb3Fnd2lNbTFVSUJRVUJvQTRNRE9lVXNPV1BvK09BZ09tQmlxQVpCZ29xZ3dpTW0xVUlCUVVFb0FzTUNUUXhPVGs0TURFd042QVJCZ29xZ3dpTW0xVUlCUVVEb0FNTUFUR2dXQVlLS29NSWpKdFZDQVVGQmFCS0RFanB1Yi9saFpEbHM3Ym5uSXpsdjVmbHVJUGx2NWZsdUlMbW5Jbm1tSTdubExycGg0N2t1cFhsZ0ludnZKbnZ2Sm52dkpudnZKbm5sYXJsbkxEdnZKanZ2Skh2dkpIdnZKR2dGQVlLS29NSWpKdFZDQVVGQXFBR0RBUXdNREF3b0NnR0NpcURDSXliVlFnRkJRYWdHZ3dZTURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNRTBHQTFVZElBRUIvd1JETUVFd1B3WU5Ld1lCQkFHRDJ3Y0lCUUVBRkRBdU1Dd0dDQ3NHQVFVRkJ3SUJGaUJvZEhSd09pOHZkM2QzTG5BNGJpNXBiblJsY201aGJDOWpjSE11YUhSdGJEQ0J2UVlEVlIwU0JJRzFNSUd5cElHdk1JR3NNUXN3Q1FZRFZRUUdFd0pLVURFek1ERUdBMVVFQ2d3cTQ0T2Q0NEt4NDRPRDQ0T0k0NEsxNDRLazQ0T3o0NE9pNDRPRDQ0S3Y0NEsxNDRPODQ0T1Q0NEs1TVR3d09nWURWUVFMRERQamc1M2pnckhqZzRQamc0ampnclhqZ3FUamc3UGpnNkxqZzRQamdxL2pnclhqZzd6amc1UGpncm5udmJMbGtJM25sS2d4S2pBb0JnTlZCQXNNSWVPRG5lT0NzZU9EZytPRGlPT0N0ZU9DcE9PRHMrYWdxdVc4aitTOG11ZWt2akNCcmdZRFZSMGZCSUdtTUlHak1JR2dvSUdkb0lHYXBJR1hNSUdVTVFzd0NRWURWUVFHRXdKS1VERVJNQThHQTFVRUNnd0lVRGhPTFUxUFEwc3hJakFnQmdOVkJBc01HVkE0VGlCbWIzSWdaR2xuYVhSaGJDQnphV2R1WVhSMWNtVXhJREFlQmdOVkJBc01GME5TVENCRWFYTjBjbWxpZFhScGIyNGdVRzlwYm5Sek1SVXdFd1lEVlFRTERBeFFjbVZtWldOMGRYSmxMVEF4RlRBVEJnTlZCQU1NREVOcGRIa3RNQ0JEVWt4RVVEQ0JoZ1lEVlIwakJIOHdmWUFVTjMzUUhVY1dITjkwVFNMMHhmWldpRVliRjlTaFlxUmdNRjR4Q3pBSkJnTlZCQVlUQWtwUU1SRXdEd1lEVlFRS0RBaFFPRTR0VFU5RFN6RWlNQ0FHQTFVRUN3d1pVRGhPSUdadmNpQmthV2RwZEdGc0lITnBaMjVoZEhWeVpURVlNQllHQTFVRUN3d1BVRzlqYTJWMFUybG5iaUJKYm1NdWdnRUNNQjBHQTFVZERnUVdCQlQrY0c4YXhSMUF0NTZ5RVZSUjZrT0pmUkpZVkRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVpGaThXR1VQWnNUUDEyc2JYUVNrVGRSN05kbi9BU2dDdldqVzJsT3dVNGQxK0NhVnNYdFY0Z1c3bFFZamFLeXdSbUszUWdiT2wxWDVFYWFtYlhQYmpoczZ4UUd2cG1EbTBwN2k1MWpaTDR0YXAvVms5eE5BOWZ4YzRMckR5cE1wSG1uQWZzbno1VitHdHRHMGNvUkZ2RG4wVjRTWThObjRYcTl2cHBacGZhbTMza3ovQTR5cnRReTY2YlRFdG9xdkJRWUhRQ1JibTEyeVVkYVNJdStyT01EaEdxRzVZQjZSaC94cUhodjJSdjN5eEQ5NVAxSExieWRZak5mdHZxQ2NvdDR3aVpxQUhpbkVKTmxYUXZHNktOU1A2WXFBWjVCcVRzUGd1dEVFUlp0OW9UWlE0bjFSTW5uTFdmTjRLdmF0cTRWd0FiS29JUGVuK01UN1VtUk14QT09PC9YNTA5Q2VydGlmaWNhdGU+PC9YNTA5RGF0YT48L0tleUluZm8+PC9TaWduYXR1cmU+PC/liKnnlKjogIXlkIzmhI/lj5bmtojnlLPoq4vmg4XloLE+"
)

func run() error {
// Base64をデコードしてバイト列にします。
application, err := base64.StdEncoding.DecodeString(rawApplication)
if err != nil {
return err
}

// 同意取り消しリクエストを作成します。
request := connect.NewRequest(&verifyv2.RevokeConsentRequest{
// SDKから得られた同意取消申請データを送信します。
Application: application,
})

// リクエストにAPIトークンを設定します。
request.Header().Set("Authorization", "Bearer "+token)

// APIクライアントを作成します。
client := verifyv2connect.NewConsentServiceClient(http.DefaultClient, baseUrl)

// 同意取り消しリクエストを送信します。
response, err := client.RevokeConsent(context.Background(), request)
if err != nil {
return err
}

// 結果を表示します。
fmt.Printf("Certificate: %s\n", response.Msg.Certificate.Id)
return nil
}

func main() {
if err := run(); err != nil {
log.Fatalln(err)
}
}

リクエストに成功すると、以下のように結果が表示されます。

Certificate: 53e8bf1c-44ef-4a48-b02b-cfad42e1ceda
要確認

同意取消申請データには、マイナンバーカードから取得した証明書の生データが含まれます。

SP 事業者は、証明書の生データの保持が禁じられているため、Verify API に送信後は速やかに削除するようにご実装ください。


次のステップ

その他、API の詳しい使い方やエラーの詳細等については、API リファレンスをご覧ください。