# Set up and Manage Virtual Cards
source: https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md

This API supports the following use cases for virtual cards:

## Set up and Manage Virtual Cards {#set-up-and-manage-virtual-cards}

* [Create](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#create-a-virtual-card) a virtual card
* [Manage](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#manage-a-virtual-card) a virtual card
* [Block or unblock](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#block-or-unblock-a-virtual-card) a virtual card
* [Register](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#register-vcn-end-user-contact-details-for-a-virtual-card) VCN end user contact details for a virtual card
* [Retrieve](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#retrieve-end-user-contact-details-for-a-virtual-card) VCN end user contact details for a virtual card
* [Update](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/02-virtual-cards/index.md#update-end-user-contact-details-for-a-virtual-card) end user contact details for a virtual card

## Create a virtual card {#create-a-virtual-card}

Diagram 02-create-a-virtual-card-to-pay-an-invoice

The accounts payable team within a company makes payments against invoices for goods or services received, and for occasional business expenses. This team wants to make fast, secure payments that allow them to take advantage of an early payment discount agreed upon with their suppliers, while availing of the credit benefits of card payments.

Using the Business Payment Controls API, a company can request virtual cards (also known as VCNs) when needed for each invoice payment. The buyer can set controls ensuring that the virtual card is only used for the intended purpose, limited to the payment amount requested.
Warning: At least one [control](https://developer.mastercard.com/business-payment-controls/documentation/use-cases/spend-controls/index.md) must be set for each virtual card, or transactions will fail.

### Process to create a virtual card with controls {#process-to-create-a-virtual-card-with-controls}

The sequence of calls to create a virtual card (VCN) with controls to limit how and when the VCN is used:


API Reference: `POST /real-card-accounts`


API Reference: `POST /funding-sources`

Assign the newly registered real card to the funding source by providing the `realCardGuid` and set `vcnCreationEnabled` to `true`.

<br />

Request a virtual card with controls and limits. Set the `{authorizationControlsEnabled}` value to `true`.


API Reference: `POST /virtual-card-accounts`

Give the supplier the virtual card account details to make payments against invoices or expenses.

<br />

## Manage a virtual card {#manage-a-virtual-card}

Diagram 02-update-a-virtual-card

The accounts payable team wants to manage an existing virtual card.

### Process to manage a virtual card {#process-to-manage-a-virtual-card}

The sequence of the calls to get, update, and delete a virtual card:


API Reference: `POST /virtual-card-accounts/searches`


API Reference: `GET /virtual-card-accounts/{account_guid}`


API Reference: `PUT /virtual-card-accounts/{account_guid}`


API Reference: `DELETE /virtual-card-accounts/{account_guid}`

<br />

## Block or unblock a virtual card {#block-or-unblock-a-virtual-card}

The `ACTIVE` or `BLOCKED` statuses allows users to block or unblock a virtual card. This can be used before deciding on further action if a card is reported as lost or stolen.
Diagram 02-block-and-unblock-a-virtual-card

* Change the `{account_guid}` status from `ACTIVE` to `BLOCKED` to block a virtual card.
* Change the `{account_guid}` status from `BLOCKED` to `ACTIVE` to unblock a virtual card.

### Process to block or unblock a virtual card {#process-to-block-or-unblock-a-virtual-card}


API Reference: `PUT /virtual-card-accounts/{account_guid}/status`

