> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/tokenize-a-card/check-card-eligibility.md).

# カードの有効性を確認する

## 概要

カードの有効性確認は最初のステップです **トークン化**。これはPANがデジタルウォレットアプリでトークン化できるかどうかを確認します。

NFCウォレットはトークンサービスプロバイダ（TSP）に対して有効性を確認します。

カードが有効であれば、NFCウォレットはTSPからの利用規約（T\&C）を返します。デジタル化前に利用規約をエンドユーザーに表示し、同意を取得してください。

{% hint style="info" %}
プログラムによっては、 **T\&C** 必要ない場合があります。
{% endhint %}

## SDK統合

使用する `CardDigitizationService.checkEligibility` を確認するために **トークン化** 有効性。該当する場合、NFCウォレットのバックエンドは適用される利用規約（T\&C）を返します。

有効性チェックを行うには、次を提供してください `EligibilityData` およびいずれか `InstrumentData` または `pushSessionID`.

`EligibilityData` には以下が含まれます:

* `language`：操作の優先言語（例えば、 `en`).
* `inputMethod`：カード情報がどのように収集されたか（例：イシュアアプリケーションまたは手動入力）。

次にいずれかを提供します:

* `InstrumentData`：次のいずれかから構築されます `encryptedCardData` または `issuerPushReceipt`。カードデータは機微情報として扱い、常に暗号化して送信してください。
* `pushSessionID`：NFCウォレットのバックエンドによって生成される一意の識別子。イシュアのバックエンドはプッシュカード登録時にこれを受け取ります。

### カード資格情報による有効性確認

ほとんどの場合、カード資格情報を使用して有効性を確認します。PANと有効期限を提供してください。オプションでカードセキュリティコード（CSC）を提供できます。

カード資格情報は暗号化された形式で送信してください。

標準のフローでは、イシュアのバックエンドがカード資格情報を提供します。デジタルウォレットアプリはそれを有効性チェックに使用します。

次のコードスニペットは、を使用して有効性を確認する方法を示します `encryptedCardData`:

```swift
func triggerCheckEligibility(_ pubKey: String, _ encryptedData: Data) async throws {
    do {
        let encryptedDataComponent = CardDigitizationService.InstrumentDataComponents(encryptedCardData: encryptedData, publicKeyIdentifier: pubKey)
        let instrumentData = encryptedDataComponent.instrumentData()
        // 有効性データを構築します
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .bankApp, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, instrumentData: instrumentData)
        let tnc = acceptanceData.termsAndConditions
        // 利用規約を保存し、UIに通知して応答を待ちます。
    } catch let error as CardDigitizationService.Error {
        // エラーを処理します。
    }
}
```

### イシュアプッシュレシートによる有効性確認

イシュアはイシュアアプリケーションからカード登録を開始できます。このフローでは、イシュアアプリケーションがイシュアプッシュレシートを送信します。デジタルウォレットアプリはそれを使用してを構築します `InstrumentData`.

{% hint style="info" %}
イシュアプッシュレシートを使用したカード登録 **issuer push receipt** はMastercardでのみサポートされています。NFCウォレットはMDES Token Connect仕様をサポートします。
{% endhint %}

次のコードスニペットは、イシュアプッシュレシートを使用してを構築する方法を示します。その後、 `InstrumentData` を呼び出します `checkEligibility` カード資格情報を使用する場合と同じ方法で。

```swift
func triggerCheckEligibility(_ payload: String, _ scheme: DigitalCard.Scheme) async throws {
    do {
        let pushReceiptDataComponent = CardDigitizationService.InstrumentDataComponents(scheme: scheme, payload: payload)
        let instrumentData = pushReceiptDataComponent.instrumentData()
        // 有効性データを構築します。
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .bankApp, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, instrumentData: instrumentData)
        let tnc = acceptanceData.termsAndConditions
        // 利用規約を保存し、UIに通知して応答を待ちます。
    } catch let error as CardDigitizationService.Error {
        // エラーを処理します。
    }
}
```

### プッシュカード登録セッションIDによる有効性確認

アプリ内で暗号化されたカード詳細を共有するのを避けるために、デジタルウォレットのバックエンドはカード詳細を直接NFCウォレットのバックエンドにプッシュできます。NFCウォレットのバックエンドはエフェメラルな **push card enrollment session ID** (`pushSessionID`).

次のコードスニペットは、を使用して有効性を確認することでカード登録を続行する方法を示します **push card enrollment session ID**.

```swift
func triggerCheckEligibility(_ pushSessionID: String) async throws {
    do {
        // 有効性データを構築します。
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .onFile, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, pushSessionID: pushSessionID)
        let tnc = acceptanceData.termsAndConditions
        // 利用規約を保存し、UIに通知して応答を待ちます。
    } catch let error as CardDigitizationService.Error {
        // エラーを処理します。
    }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-ios/ja/implement-nfc-wallet/tokenize-a-card/check-card-eligibility.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
