クレジットカード
    • PDF

    クレジットカード

    • PDF

    記事の要約

    Classic/VPC環境で利用できます。

    特化モデルエンジンを使用してクレジットカードの入力情報(key-value)を認識し、抽出します。

    リクエスト

    リクエスト形式を説明します。リクエスト形式は次の通りです。

    メソッドURI
    POST/credit-card

    リクエストヘッダ

    CLOVA OCR APIで共通して使用されるヘッダの詳細は、CLOVA OCRのリクエストヘッダをご参照ください。

    リクエストボディ

    リクエストボディの説明は次の通りです。

    Content-Type: application/jsonの場合

    リクエストヘッダのContent-Typeapplication/jsonの場合のリクエストボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    versionString-バージョン情報
    • V2のみ使用
    requestIdStringRequired任意の API呼び出しの UUID
    timestampIntegerRequired任意の APIの呼び出し時刻(Timestamp)
    imagesArrayRequiredimagesの詳細情報

    Content-Type: multipart/form-dataの場合

    リクエストヘッダのContent-Typemultipart/form-dataの場合のリクエストボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    messageObjectRequiredリクエストデータ情報
    message.versionStringRequiredバージョン情報
    • V2のみ使用
    message.requestIdStringRequired任意の API呼び出しの UUID
    message.timestampIntegerRequired任意の APIの呼び出し時刻(Timestamp)
    message.imagesArrayRequiredimagesの詳細情報
    fileFileRequiredOCR認識画像ファイル

    images

    imagesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    formatStringRequired画像の形式
    • jpg | jpeg | png | pdf | tif | tiff
      • 画像: jpgjpegpng
      • 単一ページ: pdftiftiff
    • 画像の形式のうち、1つを選択して入力
    nameStringRequired任意の画像名
    • 画像の識別とレスポンス結果の確認時に使用
    dataStringRequiredBase64でエンコードされた画像データ
    • Content-Type: application/jsonの場合に入力可能

    リクエスト例

    リクエストのサンプルコードは次の通りです。

    Content-Type: application/jsonの場合

    リクエストヘッダのContent-Typeapplication/jsonの場合のリクエストのサンプルコードは次の通りです。

    curl --location --request POST 'https://cbgrx5natw.apigw.ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/credit-card' \
    --header 'Content-Type: application/json' \
    --header 'X-OCR-SECRET: {アプリの登録時に発行された Secret Key}' \
    --data '{
        "version": "V2",
        "requestId": "1234",
        "timestamp": "0",
        "images": [
            {
                "format": "png",
                "data": "{Base64でエンコードされた画像データ}",
                "name": "creaditcard_test2"
        }]
    }'
    

    Content-Type: multipart/form-dataの場合

    リクエストヘッダのContent-Typemultipart/form-dataの場合のリクエストのサンプルコードは次の通りです。

    curl --location --request POST 'https://cbgrx5natw.apigw.ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/credit-card' \
    --header 'X-OCR-SECRET: {アプリの登録時に発行された Secret Key}' \
    --header 'Content-Type: multipart/form-data' \
    --form 'message="{\"version\": \"V2\", \"requestId\": \"1234\", \"timestamp\": 1724832750462, \"images\": [{\"format\": \"jpg\", \"name\": \"creditcard_test\"}]}"' \
    --form '{file}.png"'
    

    レスポンス

    レスポンス形式を説明します。

    レスポンスボディ

    レスポンスボディの説明は次の通りです。

    フィールドタイプ必須の有無説明
    versionString-バージョン情報
    • V2のみ使用
    requestIdString-API呼び出し UUID
    timestampInteger-APIの呼び出し時刻(Timestamp)
    imagesArray-imagesの詳細情報

    images

    imagesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    uidString-クレジットカード画像の UID
    • API有効性検査時に使用
    nameString-クレジットカードの画像名
    • 画像の識別とレスポンス結果の確認時に使用
    inferResultString-クレジットカードの画像認識結果
    • SUCCESS | FAILURE | ERROR
      • SUCCESS: 認識成功
      • FAILURE: 認識失敗
      • ERROR: 認識処理例外
    messageString-結果メッセージ
    validationResultObject-有効性検査の結果情報
    validationResult.resultString-有効性検査の結果コード
    • NO_REQUESTED | UNCHECKED | ERROR | VALID | INVALID
      • NO_REQUESTED: 検証をリクエストしていない(有効性検査失敗)
      • UNCHECKED: 検証の有無を確認できない
      • ERROR: 検証中にエラー発生(有効性検査失敗)
      • VALID: 検証中にエラー発生(有効性検査成功)
      • INVALID: 検証合格失敗
    validationResult.messageString-有効性検査結果の詳細メッセージ
    • 必ずしも返される値ではない
    convertedImageInfoObject-変換後の画像情報
    • formatpdfまたはtiffの場合
    • 座標は呼び出し画像ファイルを基準に設定
    convertedImageInfo.widthInteger-変換後画像の横長
    convertedImageInfo.heightInteger-変換後画像の縦長
    convertedImageInfo.pageIndexInteger-変換後画像ページインデックス
    creditCardObject-クレジットカードの詳細情報
    creditCard.resultObject-クレジットカードの OCR認識結果

    result

    creditCard.resultの説明は次の通りです。

    フィールドタイプ必須の有無説明
    nameObject-カード所有者名の詳細情報
    numberObject-カード番号の詳細情報
    validThruObject-カードの有効期限の詳細情報

    共通オブジェクト情報

    共通オブジェクトの説明は次の通りです。

    フィールドタイプ必須の有無説明
    textString-認識結果のテキスト
    confidenceScoreFloat-認識結果のテキストの信頼度
    • 0~1
    • 信頼度が高いほどテキストの精度が高い
    boundingPolyObject-Bounding Poly情報
    boudningPoly.verticesArray-Bounding Poly Verticesの詳細情報
    subBoundingPolysArray-subBoundiongPolysの詳細情報

    vertices

    boundingPolyVerticesの説明は次の通りです。

    フィールドタイプ必須の有無説明
    xFloat-Bounding Poly X軸の座標
    yFloat-Bounding Poly Y軸の座標

    subBoundingPolys

    subBoundingPolysの説明は次の通りです。

    フィールドタイプ必須の有無説明
    xFloat-Sub Bounding Poly X軸の座標
    yFloat-Sub Bounding Poly Y軸の座標

    レスポンスステータスコード

    CLOVA OCR APIで共通して使用されるレスポンスステータスコードの詳細は、CLOVA OCRの共通レスポンスステータスコードをご参照ください。

    レスポンス例

    レスポンスのサンプルコードは次の通りです。

    成功

    呼び出しに成功した場合のレスポンスのサンプルコードは次の通りです。

    {
        "version": "V2",
        "requestId": "1234",
        "timestamp": 1725005676747,
        "images": [
            {
                "uid": "{uid}",
                "name": "creditcard_test",
                "inferResult": "SUCCESS",
                "message": "SUCCESS",
                "validationResult": {
                    "result": "NO_REQUESTED"
                },
                "creditCard": {
                    "result": {
                        "name": {
                            "text": "KAIY*** VENY***",
                            "confidence": 0.8576972,
                            "boundingPoly": {
                                "vertices": []
                            },
                            "subBoundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 192.0,
                                            "y": 609.0
                                        },
                                        {
                                            "x": 407.0,
                                            "y": 609.0
                                        },
                                        {
                                            "x": 407.0,
                                            "y": 651.0
                                        },
                                        {
                                            "x": 192.0,
                                            "y": 651.0
                                        }
                                    ]
                                } 
                            ]
                        },
                        "number": {
                            "text": "512571781234****",
                            "confidence": 0.999885,
                            "boundingPoly": {
                                "vertices": [
                                    {
                                        "x": 187.0,
                                        "y": 450.0
                                    },
                                    {
                                        "x": 1007.0,
                                        "y": 450.0
                                    },
                                    {
                                        "x": 1007.0,
                                        "y": 506.0
                                    },
                                    {
                                        "x": 187.0,
                                        "y": 506.0
                                    }
                                ]
                            },
                            "subBoundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 187.0,
                                            "y": 450.0
                                        },
                                        {
                                            "x": 360.0,
                                            "y": 450.0
                                        },
                                        {
                                            "x": 360.0,
                                            "y": 506.0
                                        },
                                        {
                                            "x": 187.0,
                                            "y": 506.0
                                        }
                                    ]
                                },
                            ]
                        },
                        "validThru": {
                            "text": "09/23",
                            "confidence": 0.9999175,
                            "boundingPoly": {
                                "vertices": [
                                    {
                                        "x": 585.0,
                                        "y": 557.0
                                    },
                                    {
                                        "x": 735.0,
                                        "y": 557.0
                                    },
                                    {
                                        "x": 735.0,
                                        "y": 600.0
                                    },
                                    {
                                        "x": 585.0,
                                        "y": 600.0
                                    }
                                ]
                            },
                            "subBoundingPolys": []
                        }
                    }
                }
            }
        ]
    }
    

    失敗

    呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。

    {
        "version": "V2",
        "requestId": "4567",
        "timestamp": 1725003278037,
        "images": [
            {
                "uid": "{uid}",
                "name": "receipt_test2",
                "inferResult": "ERROR",
                "message": "Read page:0 error.",
                "validationResult": {
                    "result": "NO_REQUESTED"
                }
            }
        ]
    }
    

    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.