# Verify a PIN for a Full PAN Issuer
source: https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/verify-pin-full-pan-issuer/index.md

## Overview {#overview}

This use case describes the process to verify the PIN, and the PAN is known to your system. The use case can be used in a situation where you require the cardholder to enter the current PIN value to set a new PIN.

## Sequence diagram {#sequence-diagram}

Diagram verify-pin-full-pan-issuer-new

### Explanation {#explanation}

1. The cardholder is asked to enter the current PIN.
2. The mobile application or e-banking service generates the PIN block in ISO format 0 based on the PIN from step 1 and then encrypts it with the Zone PIN Key (ZPK).
3. The mobile application or e-banking service sends a `PUT` request to the `/cards/{card_contract_id}/pins/verifications` endpoint by passing the `cardExpiryDate` and encrypted `PinBlock` fields from step 2. Note: The ZPK must be exchanged with Mastercard Processing during the onboarding configuration so it can be used later to encrypt the PIN block.
4. The API retrieves the PAN number from the CMS based on the `card_contract_id` value provided in the request.
5. Mastercard Processing decrypts the `PinBlock` using the ZPK.
6. Mastercard Processing successfully verifies the PIN Block.
7. The API returns the `verificationResult` field with the `PIN_CORRECT` value confirming that the provided PIN block is correct.
8. The mobile application or e-banking service notifies the cardholder that the PIN is verified successfully.

In the next step, the [Set a PIN for a full PAN Issuer](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/set-pin-full-pan-issuer/index.md) use case can be executed to complete the process of changing the PIN.
Tip: The PIN is retrieved for the card contract for which the `Plastic` object has the `Active` value in the `status` field. Tip: Refer to [PIN Block Formation and Encryption Process](https://developer.mastercard.com/mastercard-processing-core/tutorial/pin-encryption-process/index.md) tutorial for more information with code samples to help you with the integration.

Refer to [Sandbox testing](https://developer.mastercard.com/mastercard-processing-core/documentation/sandbox-testing/pin-management/verify-pin-for-full-pan-issuer/index.md) for information on how to execute the use case in the Sandbox environment.

## Endpoint {#endpoint}


API Reference: `POST /cards/{card_contract_id}/pins/verifications`

