名前 | ドメイン |
---|---|
OCR Public APIドメイン | https://ocr.api.nhncloudservice.com |
[URI]
メソッド | URI |
---|---|
GET | /v2.0/appkeys/{appKey}/public-keys/{serviceName} |
[リクエストヘッダ]
名前 | 値 | 説明 |
---|---|---|
Authorization | {secretKey} | コンソールで発行されたセキュリティキー |
[Path Variable]
名前 | 値 | 説明 |
---|---|---|
appKey | {appKey} | 統合AppkeyまたはサービスAppkey |
serviceName | {serviceName} | credit-card(クレジットカードAPI呼び出し時に使用する公開鍵発行時)、 id-card(身分証API呼び出し時に使用する公開鍵発行時) |
[リクエスト本文]
curl -X GET 'https://ocr.api.nhncloudservice.com/v2.0/appkeys/{appKey}/public-keys/{serviceName}' \
-H 'Authorization: ${secretKey}'
[レスポンス本文]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"key": "String",
"version": "0"
}
}
[ヘッダ]
名前 | タイプ | 説明 |
---|---|---|
isSuccessful | Boolean | API成否 |
resultCode | Integer | 結果コード |
resultMessage | String | 結果メッセージ(成功時はsuccess、失敗時はエラー内容) |
[フィールド]
名前 | タイプ | 説明 |
---|---|---|
result | Object | 暗号化に必要な公開鍵 |
result.key | String | 公開鍵(Base64でエンコードされている) |
result.version | String | 公開鍵のバージョン |
[URI]
メソッド | URI |
---|---|
POST | /v2.0/appkeys/{appKey}/credit-card |
[リクエストヘッダ]
名前 | 値 | 説明 |
---|---|---|
Authorization | {secretKey} | コンソールで発行されたセキュリティキー |
X-Key-Version | {x-key-version} | 発行された公開鍵のバージョン |
Symmetric-Key | {symmetricKey} | 発行された公開鍵で暗号化された対称鍵 |
[Path Variable]
名前 | 値 | 説明 |
---|---|---|
appKey | {appKey} | 統合AppkeyまたはサービスAppkey |
[フィールド]
名前 | タイプ | 説明 | 暗号化説明 |
---|---|---|---|
image | multipart/form–data | イメージファイル | 対称鍵で暗号化されたイメージ |
[リクエスト本文]
curl -X POST 'https://ocr.api.nhncloudservice.com/v2.0/appkeys/{appKey}/credit-card' \
-F 'image=@sample.png' \
-H 'Authorization: ${secretKey}' \
-H 'X-Key-Version: ${x-key-version}' \
-H 'Symmetric-Key: ${symmetricKey}'
[レスポンス本文]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"fileType": "png",
"resolution": "low",
"cardNums": [
{
"value": "1111",
"conf": 0.87
},
{
"value": "2222",
"conf": 0.99
},
{
"value": "3333",
"conf": 0.97
},
{
"value": "4444",
"conf": 0.89
}
],
"totalCardNum": "111222233334444",
"cardNumBoxes": [
{
"x1": 62,
"y1": 256,
"x2": 192,
"y2": 256,
"x3": 192,
"y3": 301,
"x4": 62,
"y4": 301
},
...
],
"validThru": {
"value": "04/19",
"conf": 0.53
},
"validThruBox": {
"x1": 316,
"y1": 315,
"x2": 426,
"y2": 315,
"x3": 426,
"y3": 347,
"x4": 316,
"y4": 347
}
}
}
[ヘッダ]
名前 | タイプ | 説明 |
---|---|---|
isSuccessful | Boolean | 分析API成否 |
resultCode | Integer | 結果コード |
resultMessage | String | 結果メッセージ(成功時はsuccess、失敗時はエラー内容) |
[フィールド]
名前 | タイプ | 説明 | 暗号化するかどうか |
---|---|---|---|
fileType | String | ファイル拡張子(.jpg, .png) | |
resolution | String | 推奨解像度(760*480px)以上の場合はnormal、推奨解像度未満はlow | |
cardNums | List | カード番号認識結果リスト | |
cardNums[0].value | String | 認識結果 | O |
cardNums[0].conf | Double | 認識結果の信頼度 | |
totalCardNum | List | カード番号全体認識結果 | O |
cardNumBoxes | List | カード番号認識領域(Bounding box)座標リスト | |
cardNumBoxes[0] | Object | 認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } | |
validThru.value | String | 有効期限認識内容 | O |
validThru.conf | Double | 有効期限認識結果の信頼度 | |
validThruBox | Object | 有効期限認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } |
暗号化された項目(cardNums[0].value, totalCardNumなど)は AES-256/CBC/PKCS7Padding方式で暗号化されています(対称鍵を利用)。
boxes[0]
[URI]
メソッド | URI |
---|---|
POST | /v2.0/appkeys/{appKey}/id-card |
[リクエストヘッダ]
名前 | 値 | 説明 |
---|---|---|
Authorization | {secretKey} | コンソールで発行されたセキュリティキー |
X-Key-Version | {x-key-version} | 発行された公開鍵のバージョン |
Symmetric-Key | {symmetricKey} | 発行された公開鍵で暗号化された対称鍵 |
[Path Variable]
名前 | 値 | 説明 |
---|---|---|
appKey | {appKey} | 統合AppkeyまたはサービスAppkey |
[フィールド]
名前 | タイプ | 説明 | 暗号化説明 |
---|---|---|---|
image | multipart/form–data | 画像ファイル | 対称鍵で暗号化された画像 |
[リクエスト本文]
curl -X POST 'https://ocr.api.nhncloudservice.com/v2.0/appkeys/{appKey}/id-card' \
-F 'image=@sample.png' \
-H 'Authorization: ${secretKey}' \
-H 'X-Key-Version: ${x-key-version}' \
-H 'Symmetric-Key: ${symmetricKey}'
[レスポンスヘッダ]
名前 | 説明 |
---|---|
Request-Key | 身分証真偽確認API呼び出し時に使用するRequest-Key |
[レスポンス本文]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"fileType": "png",
"resolution": "low",
"idType": "resident",
"keyValues": [
{
"key": "name",
"value": "String",
"conf": 0.67,
"bbox": {
"x1": 191,
"y1": 75,
"x2": 240,
"y2": 75,
"x3": 240,
"y3": 95,
"x4": 191,
"y4": 95
}
},
{
"key": "residentNumber",
"value": "String",
"conf": 0.91,
"bbox": {
"x1": 190,
"y1": 43,
"x2": 382,
"y2": 43,
"x3": 382,
"y3": 64,
"x4": 190,
"y4": 64
}
},
{
"key": "issueDate",
"value": "String",
"conf": 0.86,
"bbox": {
"x1": 191,
"y1": 75,
"x2": 240,
"y2": 75,
"x3": 240,
"y3": 95,
"x4": 191,
"y4": 95
},
},
{
"key": "issuer",
"value": "String",
"conf": 0.8,
"bbox": {
"x1": 19,
"y1": 10,
"x2": 148,
"y2": 10,
"x3": 148,
"y3": 52,
"x4": 19,
"y4": 52
}
}
],
"boxes": [
{
"x1": 280,
"y1": 271,
"x2": 354,
"y2": 271,
"x3": 354,
"y3": 305,
"x4": 280,
"y4": 305
},
...
]
}
}
[ヘッダ]
名前 | タイプ | 説明 |
---|---|---|
isSuccessful | Boolean | 分析API成否 |
resultCode | Integer | 結果コード |
resultMessage | String | 結果メッセージ(成功時はsuccess、失敗時はエラー内容) |
[フィールド]
名前 | タイプ | 説明 | 暗号化するかどうか |
---|---|---|---|
fileType | String | ファイル拡張子(.jpg, .png) | |
resolution | String | 推奨解像度(760*480px)以上はnormal、推奨解像度未満はlow | |
idType | String | resident(住民登録証)、driver(運転免許証)、passport(パスポート) | |
keyValues | List | ||
keyValues[0].key | String | ||
keyValues[0].value | String | O | |
keyValues[0].bbox | Object | 認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } | |
keyValues[0].conf | Double | 有効期限認識結果の信頼度 | |
boxes | List | 認識領域(Bounding box)座標リスト | |
boxes[0] | Object | 認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } |
key | value type | description |
---|---|---|
name | string | 認識された名前 |
residentNumber | string | 認識された住民登録番号 |
issueDate | string | 認識された発行日時 |
issuer | string | 認識された発行機関 |
key | value type | description |
---|---|---|
driverLicenseNumber | string | 認識された運転免許番号 |
licenseType | string | 認識された免許の種類(1種普通など) 2つ以上の場合は文字列内の"/"で区分 |
name | string | 認識された名前 |
residentNumber | string | 認識された住民登録番号 |
condition | string | 認識された免許条件 (運転免許証に当該フィールドが存在しない場合、当該フィールドのvalueはnone) |
serialNum | string | 認識された暗号一連番号 |
issueDate | string | 認識された発行日時 |
issuer | string | 認識された発行機関 |
key | value type | description |
---|---|---|
passportType | string | 認識されたパスポート番号 |
countryCode | string | 認識された国コード |
passportNo | string | 認識されたパスポート番号 |
surName | string | 認識された姓 |
givenName | string | 認識された名前 |
nationality | string | 認識された国籍 |
dateOfBirth | string | 認識された生年月日 |
dateOfBirthYMD | string | 認識された生年月日 (YYYYMMDD 8桁) |
sex | string | 認識された性別 |
dateOfIssue | string | 認識された発行日 |
dateOfIssueYMD | string | 認識された発行日 (YYYYMMDD 8桁) |
dateOfExpiry | string | 認識された有効期限 |
dateOfExpiryYMD | string | 認識された有効期限 (YYYYMMDD 8桁) |
koreanName | string | 認識されたハングル姓名 |
personalNo | string | 認識された住民登録番号 |
MRZ1 | string | 機械判読領域1 |
MRZ2 | string | 機械判読領域2 |
[URI]
メソッド | URI |
---|---|
POST | /v2.0/appkeys/{appKey}/id-card/authenticity |
[リクエストヘッダ]
名前 | 値 | 説明 |
---|---|---|
Authorization | {secretKey} | コンソールで発行されたセキュリティキー |
X-Key-Version | {x-key-version} | 発行された公開鍵のバージョン |
Symmetric-Key | {symmetricKey} | 発行された公開鍵で暗号化された対称鍵 |
Request-Key | {Request-Key} | 身分証分析後に発行されたRequest-Key |
[Path Variable]
名前 | 値 | 説明 |
---|---|---|
appKey | {appKey} | 統合AppkeyまたはサービスAppkey |
[フィールド]
名前 | タイプ | 説明 | idType | 暗号化有無 | 必須 |
---|---|---|---|---|---|
idType | String | resident(住民登録証), driver(運転免許証), passport(パスポート) | X | O | |
name | String | 名前 | O | O | |
residentNumber | String | 住民登録番号 - resident(住民登録証)の場合、住民登録番号数字13桁 - driver(運転免許証)の場合、住民登録番号の前6桁と後ろの最初の1桁を組み合わせた数字7桁 |
resident, driver | O | O |
issueDate | String | 発行日時(YYYYMMDD) | resident, passport | O | O |
driverLicenseNumber | String | 12桁の運転免許番号 | driver | O | O |
serialNum | String | 5~6桁の暗号一連番号 | driver | O | X |
passportNumber | String | パスポート番号(9桁英字大文字、数字の組み合わせ) | passport | O | O |
birthDate | String | 生年月日(YYYYMMDD) | passport | O | O |
expirationDate | String | 有効期限(YYYYMMDD) | passport | X | O |
[リクエスト本文]
curl -X POST 'https://ocr.api.nhncloudservice.com/v2.0/appkeys/{appKey}/id-card/authenticity' \
-H 'Authorization: ${secretKey}' \
-H 'X-Key-Version: ${x-key-version}' \
-H 'Symmetric-Key: ${symmetricKey}' \
-H 'Request-Key: ${Request-Key}' \
-H 'Content-Type: application/json' \
--data-raw '{
"idType": "driver",
"name": "J/MTycDJ...",
"residentNumber": "P12ztmj...",
"driverLicenseNumber": "OHjVJrUMh...",
"serialNum": "7tnTOKuKGJ..."
}'
[レスポンス本文]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"isAuthenticity": false
}
}
[ヘッダ]
名前 | タイプ | 説明 |
---|---|---|
isSuccessful | Boolean | 真偽確認API成否 |
resultCode | Integer | 結果コード |
resultMessage | String | 結果メッセージ(成功時はsuccess、失敗時はエラー内容) |
[フィールド]
名前 | タイプ | 説明 |
---|---|---|
isAuthenticity | Boolean | 真偽 |
[URI]
メソッド | URI |
---|---|
POST | /v2.0/appkeys/{appKey}/id-card/stand-alone |
[リクエストヘッダ]
名前 | 値 | 説明 |
---|---|---|
Authorization | {secretKey} | コンソールで発行されたセキュリティキー |
X-Key-Version | {x-key-version} | 発行された公開鍵のバージョン |
Symmetric-Key | {symmetricKey} | 発行された公開鍵で暗号化された対称鍵 |
[Path Variable]
名前 | 値 | 説明 |
---|---|---|
appKey | {appKey} | 統合AppkeyまたはサービスAppkey |
[フィールド]
名前 | タイプ | 説明 | 暗号化説明 |
---|---|---|---|
image | multipart/form–data | イメージファイル | 対称鍵で暗号化されたイメージ |
[リクエスト本文]
curl -X POST 'https://ocr.api.nhncloudservice.com/v2.0/appkeys/{appKey}/id-card/stand-alone' \
-F 'image=@sample.png' \
-H 'Authorization: ${secretKey}' \
-H 'X-Key-Version: ${x-key-version}' \
-H 'Symmetric-Key: ${symmetricKey}'
[レスポンス本文]
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"result": {
"fileType": "png",
"resolution": "low",
"idType": "resident",
"keyValues": [
{
"key": "name",
"value": "String",
"conf": 0.67,
"bbox": {
"x1": 191,
"y1": 75,
"x2": 240,
"y2": 75,
"x3": 240,
"y3": 95,
"x4": 191,
"y4": 95
}
},
{
"key": "residentNumber",
"value": "String",
"conf": 0.91,
"bbox": {
"x1": 190,
"y1": 43,
"x2": 382,
"y2": 43,
"x3": 382,
"y3": 64,
"x4": 190,
"y4": 64
}
},
{
"key": "issueDate",
"value": "String",
"conf": 0.86,
"bbox": {
"x1": 191,
"y1": 75,
"x2": 240,
"y2": 75,
"x3": 240,
"y3": 95,
"x4": 191,
"y4": 95
},
},
{
"key": "issuer",
"value": "String",
"conf": 0.8,
"bbox": {
"x1": 19,
"y1": 10,
"x2": 148,
"y2": 10,
"x3": 148,
"y3": 52,
"x4": 19,
"y4": 52
}
}
],
"boxes": [
{
"x1": 280,
"y1": 271,
"x2": 354,
"y2": 271,
"x3": 354,
"y3": 305,
"x4": 280,
"y4": 305
},
...
]
}
}
[ヘッダ]
名前 | タイプ | 説明 |
---|---|---|
isSuccessful | Boolean | 分析API成否 |
resultCode | Integer | 結果コード |
resultMessage | String | 結果メッセージ(成功時はsuccess、失敗時はエラー内容) |
[フィールド]
名前 | タイプ | 説明 | 暗号化するかどうか |
---|---|---|---|
fileType | String | ファイル拡張子(.jpg, .png) | |
resolution | String | 推奨解像度(760*480px)以上の場合はnormal、推奨解像度未満はlow | |
idType | String | resident(住民登録証)、driver(運転免許証)、passport(パスポート) | |
keyValues | List | ||
keyValues[0].key | String | ||
keyValues[0].value | String | O | |
keyValues[0].bbox | Object | 認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } | |
keyValues[0].conf | Double | 有効期限認識結果の信頼度 | |
boxes | List | 認識領域(Bounding box)座標リスト | |
boxes[0] | Object | 認識領域座標{ x1, y1, x2, y2, x3, y3, x4, y4 } |
key | value type | description |
---|---|---|
name | string | 認識された名前 |
residentNumber | string | 認識された住民登録番号 |
issueDate | string | 認識された発行日時 |
issuer | string | 認識された発行機関 |
key | value type | description |
---|---|---|
driverLicenseNumber | string | 認識された運転免許番号 |
licenseType | string | 認識された免許種類(1種普通など) 2つ以上の場合、文字列内"/"で区切る |
name | string | 認識された名前 |
residentNumber | string | 認識された住民登録番号 |
condition | string | 認識された免許条件 (運転免許証によって該当フィールドが存在しない場合、該当フィールドのvalueはnone) |
serialNum | string | 認識された暗号一連番号 |
issueDate | string | 認識された発行日時 |
issuer | string | 認識された発行機関 |
key | value type | description |
---|---|---|
passportType | string | 認識されたパスポート番号 |
countryCode | string | 認識された国コード |
passportNo | string | 認識されたパスポート番号 |
surName | string | 認識された姓 |
givenName | string | 認識された名前 |
nationality | string | 認識された国籍 |
dateOfBirth | string | 認識された生年月日 |
dateOfBirthYMD | string | 認識された生年月日 (YYYYMMDD 8桁) |
sex | string | 認識された性別 |
dateOfIssue | string | 認識された発行日 |
dateOfIssueYMD | string | 認識された発行日 (YYYYMMDD 8桁) |
dateOfExpiry | string | 認識された有効期限 |
dateOfExpiryYMD | string | 認識された有効期限 (YYYYMMDD 8桁) |
koreanName | string | 認識されたハングル姓名 |
personalNo | string | 認識された住民登録番号 |
MRZ1 | string | 機械判読領域1 |
MRZ2 | string | 機械判読領域2 |