# Use Cases source: https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/index.md ## Overview {#overview} Each use case provides the following information: * A brief description of the use case * A sequence diagram * A detailed explanation * A part of API specification with the endpoint(s) used in the use case Note: The diagrams do not contain end-to-end encryption which is part of every operation. Refer to [Encryption](https://developer.mastercard.com/mastercard-processing-core/documentation/api-basics-section/encryption/index.md) for more information. The following use cases are provided. | Use case | OperationId | Method | URI | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|--------|-----------------------------------------------------------------| | [Order a Virtual Card](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/order-a-virtual-card/index.md) | createClient | POST | /clients | | | createAccountContract | POST | /accounts | | | createCardContract | POST | /cards | | [Order a Physical Card through Mastercard Processing Personalization Bureau](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/order-through-mc-pb/index.md) | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Order a Physical Card through Issuer's Personalization Bureau](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/order-through-is-pb/index.md) | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Replace a Card with New Virtual and Physical Cards](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/replace-vc-with-pc/index.md) | changeCardContractStatus | PUT | /cards/{card_contract_id}/status | | | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Replace a Physical Card](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/replace-pc/index.md) | changeCardContractStatus | PUT | /cards/{card_contract_id}/status | | | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Renew a Card with New Virtual and Physical Cards](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/renew-with-vc-pc/index.md) | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Renew a Physical Card](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/renew-pc/index.md) | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Activate a Card](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/activate-a-card/index.md) | activateCard | PUT | /cards/{card_contract_id}/active | | [Display Card Details to the Cardholder](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/disp-card-det-to-crdholder/index.md) | getCardContract | GET | /cards/{card_contract_id} | | | getCVC | POST | /cards/{card_contract_id}/card-verification-codes/searches | | [Set or update authentication method](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/set-update-auth-method/index.md) | setAuthenticationMethod | PUT | /contracts/{contract_id}/authentication-method | | [Verify Card details (PAN, expiry date, CVC2)](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/verify-card-details/index.md) | verifyCardDetails | POST | /cards/details-verifications | | [Verify CVC2](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/verify-cvc2/index.md) | verifyCVC | POST | /cards/{card_contract_id}/card-verification-codes/verifications | | [Change a Card status](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/change-card-status/index.md) | changeCardContractStatus | PUT | /cards/{card_contract_id}/status | | [Close an Account](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/close-an-account/index.md) | changeAccountContractStatus | PUT | /accounts/{account_contract_id}/status | | [Open an Event](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/open-an-event/index.md) | openEvent | POST | /contracts/{contract_id}/events | | [Set Service Limit Tariff](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/card-lifecycle/set-service-limit-tariff/index.md) | setServiceLimitTariff | POST | /contracts/{contract_id}/service-limit-tariffs | | Use case | OperationId | Method | URI | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|--------|-------------------------------------------------------| | [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) | setPIN | PUT | /cards/{card_contract_id}/pin | | [Set a PIN for a PAN-less Issuer](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/set-pin-pan-less-issuer/index.md) | getPublicRsaKey | POST | /public-keys | | | setPIN | PUT | /cards/{card_contract_id}/pin | | [Order a PIN Reprint](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/order-pin-reprint/index.md) | reissueCard | POST | /cards/{card_contract_id}/plastics | | [Verify a PIN for a Full PAN Issuer](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/verify-pin-full-pan-issuer/index.md) | verifyPIN | POST | /cards/{card_contract_id}/pins/verifications | | [Verify a PIN for a PAN-less Issuer](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/verify-pin-pan-less-issuer/index.md) | getPublicRsaKey | POST | /public-keys | | | verifyPIN | POST | /cards/{card_contract_id}/pins/verifications | | [Display a PIN](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/display-a-pin/index.md) | getPIN | POST | /cards/{card_contract_id}/pins/searches | | [Clear the online PIN try counter](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/pin-management/clear-online-pin-try-counter/index.md) | clearOnlinePinAttemptsForClient | PUT | /clients/{client_id}/online-pin-attempts-counter | | | clearOnlinePinAttempts | PUT | /cards/{card_contract_id}/online-pin-attempts-counter | | Use case | OperationId | Method | URI | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------|--------|---------------------------------------------------| | [Update Client data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/update-client-data/index.md) | updateClient | PATCH | /clients/{client_id} | | [Update Account Contract data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/update-accnt-contract-data/index.md) | updateAccountContract | PATCH | /accounts/{account_contract_id} | | [Update Card Contract data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/update-card-contract-data/index.md) | updateCardContract | PATCH | /cards/{card_contract_id} | | [Relink Account Contract to another Client](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/relink-acct-con-another-client/index.md) | changeAccountContractClient | PUT | /accounts/{account_contract_id}/client-identifier | | [Relink Subaccount to another parent Account Contract and Client](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/relink-subacct-another-par-acct-con/index.md) | changeContractMainContract | PUT | /contracts/{contract_id}/main-contract | | [Relink Card Contract to another Client](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/relink-card-con-another-client/index.md) | changeCardContractClient | PUT | /cards/{card_contract_id}/client-identifier | | [Relink Card contract to another Account contract](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/relink-card-con-another-acc-con/index.md) | changeCardContractMainContract | PUT | /cards/{card_contract_id}/main-contract | | [Add or update Custom Data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/add-update-custom-data/index.md) | setClientCustomData | POST | /clients/{client_id}/custom-data | | | setContractCustomData | POST | /contracts/{contract_id}/custom-data | | [Add an Address](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/add-an-address/index.md) | addClientAddress | POST | /clients/{client_id}/addresses | | | addContractAddress | POST | /contracts/{contract_id}/addresses | | [Update an Address](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/update-an-address/index.md) | updateClientAddress | PUT | /clients/{client_id}/addresses/{address_type} | | | updateContractAddress | PUT | /contracts/{contract_id}/addresses/{address_type} | | Use case | OperationId | Method | URI | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|--------|------------------------------------------------------------| | [Retrieve Client data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-client-data/index.md) | getClient | GET | /clients/{client_id} | | [Retrieve Account contract data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-acct-con-data/index.md) | getAccountContract | GET | /accounts/{account_contract_id} | | [Retrieve a list of Card Plastics](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-list-of-card-plastics/index.md) | getCardPlastics | GET | /cards/{card_contract_id}/plastics | | [Retrieve CVC2](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-cvc2/index.md) | getCVC | POST | /cards/{card_contract_id}/card-verification-codes/searches | | [Retrieve a list of Account Contracts for a Client](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-list-acc-contracts-for-client/index.md) | getAccountContractsByClient | GET | /clients/{client_id}/account-contracts | | [Retrieve a list of Card Contracts for a Client](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-list-card-contracts-for-client/index.md) | getCardContractsByClient | GET | /clients/{client_id}/card-contracts | | [Retrieve technical Accounts](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-technical-acc/index.md) | getTechnicalAccounts | GET | /contracts/{contract_id}/technical-accounts | | [Retrieve Contract tree structure summary](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-con-tree-struct-summary/index.md) | getContractTreeSummary | GET | /contracts/{contract_id}/tree-summaries | | [Retrieve Account Contract or Card Contract status](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-acc-or-card-con-status/index.md) | getAccountContractStatus | GET | /accounts/{account_contract_id}/statuses | | | getCardContractStatus | GET | /cards/{card_contract_id}/statuses | | [Retrieve Subaccounts](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-subacc/index.md) | getSubAccountContracts | GET | /accounts/{account_contract_id}/sub-accounts | | [Retrieve a list of Card Contracts for an Account Contract](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-list-card-contracts-for-acc-con/index.md) | getCardContractsByAccount | GET | /accounts/{account_contract_id}/card-contracts | | [Retrieve Custom Data](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-custom-data/index.md) | getClientCustomData | GET | /clients/{client_id}/custom-data/{tag_name} | | | getContractCustomData | GET | /contracts/{contract_id}/custom-data/{tag_name} | | [Retrieve Addresses](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-addresses/index.md) | getClientAddresses | GET | /clients/{client_id}/addresses | | | getContractAddresses | GET | /contracts/{contract_id}/addresses | | [Retrieve financial information](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-fin-info/index.md) | getContractFinancials | GET | /contracts/{contract_id}/financials | | [Retrieve Contract's balances](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-con-balances/index.md) | getContractBalances | GET | /contracts/{contract_id}/balances | | [Retrieve authentication parameter's value](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-auth-para-value/index.md) | getAuthenticationParameterValue | GET | /contracts/{contract_id}/authentication-parameter-values | | [Retrieve Tariffs](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/data-management/query-cms-get-particular-data/retrieve-tariffs/index.md) | getContractTariffData | GET | /contracts/{contract_id}/tariff-data | | Use case | OperationId | Method | URI | |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------|--------|--------------------------------------------------------| | [Set Classifier](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/classifiers-and-parameters-management/set-classifier/index.md) | setClientClassifier | PUT | /clients/{client_id}/classifiers/{classifier_code} | | | setContractClassifier | PUT | /contracts/{contract_id}/classifiers/{classifier_code} | | [Retrieve Classifiers](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/classifiers-and-parameters-management/retrieve-classifiers/index.md) | getClientClassifiers | GET | /clients/{client_id}/classifiers/{classifier_code} | | | getContractClassifiers | GET | /contracts/{contract_id}/classifiers/{classifier_code} | | [Set Parameter](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/classifiers-and-parameters-management/set-parameter/index.md) | setContractParameter | PUT | /contracts/{contract_id}/parameters/{parameter_code} | | [Retrieve Parameters](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/classifiers-and-parameters-management/retrieve-parameters/index.md) | getContractParameters | GET | /contracts/{contract_id}/parameters/{parameter_code} | | Use case | OperationId | Method | URI | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|--------|--------------------------------------------------------------------------------| | [Post a Debit Transaction](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/post-debit-trans/index.md) | debitContract | POST | /contracts/{contract_id}/debits | | [Post a Credit Transaction](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/post-credit-trans/index.md) | creditContract | POST | /contracts/{contract_id}/credits | | [Charge a Fee](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/charge-a-fee/index.md) | chargeFee | POST | /contracts/{contract_id}/charge-fees | | [Release blocked funds (cancel pending transaction)](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/release-blocked-funds/index.md) | releaseBlockedFunds | PUT | /contracts/{contract_id}/transactions/{transaction_id}/releasing-blocked-funds | | [Reverse a Transaction](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/reverse-a-trans/index.md) | reverseTransaction | POST | /transactions/{transaction_id}/reversal | | [Retrieve Transactions](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/retrieve-trans/index.md) | getTransactions | GET | /contracts/{contract_id}/transactions | | [Retrieve Transaction Documents](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/retrieve-trans-docs/index.md) | getContractTransactionDocuments | GET | /contracts/{contract_id}/transaction-documents | | [Retrieve Transaction Documents by ID, ARN, RRN or SRN](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/retrieve-trans-docs-by-id/index.md) | getTransactionDocuments | GET | /transaction-documents | | [Retrieve Transaction's Fees](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/transactions-and-fees-management/retrieve-trans-fees/index.md) | getTransactionFees | GET | /transactions/{transaction_id}/fees | | Use case | OperationId | Method | URI | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------|--------|-----------------------------------------------------------------------------| | [Update Usage Limit](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/usage-limits-management/update-usage-limit/index.md) | setUsageLimit | PUT | /contracts/{contract_id}/usage-limits/{usage_limit_code} | | [Enable or disable Usage Limit](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/usage-limits-management/enable-disable-usage-limit/index.md) | changeUsageLimitStatus | PUT | /contracts/{contract_id}/usage-limits/{usage_limit_code}/status | | [Reset Usage Limit counters](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/usage-limits-management/reset-usage-limit-counters/index.md) | resetUsageLimitCounters | PUT | /contracts/{contract_id}/usage-limits/{usage_limit_code}/resetting-counters | | [Restore Usage Limit original values](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/usage-limits-management/restore-usage-limit-original-values/index.md) | restoreUsageLimitOriginalValues | PUT | /contracts/{contract_id}/usage-limits/{usage_limit_code}/original-values | | [Retrieve Usage Limits details](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/usage-limits-management/retrieve-usage-limits-details/index.md) | getUsageLimits | GET | /contracts/{contract_id}/usage-limits | | Use case | OperationId | Method | URI | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|--------|--------------------| | [Retrieve clientId](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/cms-identifiers-search/retrieve-clientid/index.md) | getClientId | POST | /clients/searches | | [Retrieve accountContractId](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/cms-identifiers-search/retrieve-accountcontractid/index.md) | getAccountContractId | POST | /accounts/searches | | [Retrieve cardContractId](https://developer.mastercard.com/mastercard-processing-core/documentation/use-cases/cms-identifiers-search/retrieve-cardcontractid/index.md) | getCardContractId | POST | /cards/searches |