# Delete VRP Consent
source: https://developer.mastercard.com/open-banking-connect/documentation/pisfeatures/delete-vrp-consent-request/index.md

## Request overview {#request-overview}

The goal of this request is to delete VRP consent request that is authorized by the PSU.

### Endpoint details {#endpoint-details}

|         **Endpoints/Resources**         | **Method** |                **API Profiles**                 |  **Description**   |
|-----------------------------------------|------------|-------------------------------------------------|--------------------|
| /payments/domestic-vrps/consents/delete | `POST`     | CMA9 (restricted to specific ASPSPs and TPPs\*) | Revoke VRP Consent |

\*UK only. Available on subscription.

The following sequence diagram shows the flows for a Delete VRP Consent request.
Diagram vrp_delete_consent

## Request scenario {#request-scenario}


API Reference: `POST /payments/domestic-vrps/consents/delete`

#### Request header {#request-header}

|        **Name**        |              **Purpose**              | **Required by** |                        **How it can be used**                        | **Condition** | **Multiplicity** | **Type** |                                                                           **Description**                                                                           |
|------------------------|---------------------------------------|-----------------|----------------------------------------------------------------------|---------------|------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `X-Mc-Idempotency-Key` | Is used to enable request idempotency | ASPSP           | Should be used to ensure that requests are not rejected as duplicate | O             | 0..1             | String   | Required to enable idempotency for the request. If not provided, unique value will be generated and sent to the bank. Example: c0ba8bf3-ef1a-419f-87a3-28a1b2e6da96 |

#### Request body {#request-body}

|      **Name**      |                                                                                  **Purpose**                                                                                   | **Required by** |                                                                                                **How it can be used**                                                                                                | **Condition** | **Multiplicity** | **Type** |                                                                                         **Description**                                                                                          |                                 **Limitations/Parameters**                                  |
|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
| `requestInfo`      | Includes information about request being processed                                                                                                                             | MC              | This element encapsulates all request information sent to the API Service                                                                                                                                            | M             | 1..1             | Object   | Set of elements used to define the request details                                                                                                                                               | N/A                                                                                         |
| `xRequestId`       | ID of the request, unique to the call, as determined by the TPP                                                                                                                | TPP             | A memorable ID could be used to support in a dispute                                                                                                                                                                 | M             | 1..1             | UUID     | Free field that allows for the addition of information that can be referenced for future use                                                                                                     | 36 pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` |
| `aspspId`          | ID of a financial institution servicing the Accounts of the PSU                                                                                                                | ASPSP           | Identification of ASPSP.                                                                                                                                                                                             | M             | 1..1             | String   | This element is used to specify the identification code of a financial institution which holds PSU accounts                                                                                      | 36 pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` |
| `isLivePsuRequest` | Indicates if PSU actively initiated request                                                                                                                                    | ASPSP           | Type of PSU request                                                                                                                                                                                                  | O             | 0..1             | Boolean  | PSU request type                                                                                                                                                                                 | Boolean:true, false                                                                         |
| `psuIPAddress`     | The forwarded IP address field consists of the corresponding HTTP request IP address field between PSU and TPP.                                                                | ASPSP           | It shall be contained only if the PSU actively initiated this request                                                                                                                                                | C             | 0..1             | String   | IP address of PSU's terminal device Required when isLivePsuRequest=true.                                                                                                                         | Required when isLivePsuRequest=true.                                                        |
| `psuAgent`         | Indicates the user-agent for the PSU. If the PSU is using the TPP's mobile app, make sure the mobile app user-agent string is different than browser-based user-agent strings. | ASPSP           | If user-agent is supplied to ASPSP, then this information can be used by ASPSP's security mechanisms. To avoid rejections, it is recommended to include this field when providing isLivePsuRequest and psuIPAddress. | O             | 0..1             | String   | PSU's browser agent details                                                                                                                                                                      |                                                                                             |
| `merchant`         | Collect merchant data for reporting purposes                                                                                                                                   | MC              | Merchant data used for reporting or reconciliation purposes                                                                                                                                                          | O             | 0..1             | Object   | Set of elements used to define the merchant details                                                                                                                                              | N/A                                                                                         |
| `id`               | Merchant identification code to identify the merchant                                                                                                                          | MC              | Unique Merchant identifier per TPP, which could be used for reporting/reconciliation purposes                                                                                                                        | M             | 1..1             | String   | Field is available for TPPs to enable capturing of a merchant ID                                                                                                                                 | 1-256                                                                                       |
| `name`             | Merchant name to identify the merchant                                                                                                                                         | MC              | Name of merchant                                                                                                                                                                                                     | M             | 1..1             | String   | Field is available for TPPs to enable capturing of a merchant name                                                                                                                               | 1-256                                                                                       |
| `consentId`        | A unique reference to the account information consent stored by the ASPSP.                                                                                                     | ASPSP           | Pass this value as part of the variable recurrent payment initiation request                                                                                                                                         | M             | 1..1             | String   | A unique reference to the account information consent stored by the ASPSP. Please note that this is not the original value generated by the ASPSP but a generated 'proxy' value related to that. | 1-256                                                                                       |

Tip: For an explanation of notations used, refer to **Open Banking General FAQ** in our [Frequently Asked Questions](https://developer.mastercard.com/open-banking-connect/documentation/frequently-asked-questions/index.md) section.

### Response -- Success {#response--success}

HTTP Response Code = 200, OK
Tip: For a list of general response codes and error code structure see [Response and Error Codes](https://developer.mastercard.com/open-banking-connect/documentation/response-and-error-codes/index.md).

#### Response header {#response-header}

N/A

#### Response body {#response-body}

|       **Name**        |                        **Purpose**                         | **Required by** |                  **How it can be used**                  | **Condition** | **Multiplicity** | **Type** |                   **Description**                    |                                 **Limitations/Parameters**                                  |
|-----------------------|------------------------------------------------------------|-----------------|----------------------------------------------------------|---------------|------------------|----------|------------------------------------------------------|---------------------------------------------------------------------------------------------|
| `originalRequestInfo` | Returns original request information to the TPP            | MC              | This object contains original request information        | M             | 1..1             | Object   | Original request data                                | N/A                                                                                         |
| `xRequestId`          | A memorable ID which could be used to support in a dispute | TPP             | This element could be used for request-response tracking | M             | 1..1             | UUID     | Original `xRequestId` given by the client on request | 36 pattern: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$` |

## Feature specific error codes {#feature-specific-error-codes}

Tip: For a list of general response codes and error code structure see [Response and Error Codes](https://developer.mastercard.com/open-banking-connect/documentation/response-and-error-codes/index.md).

|                                **Message**                                | **Reason Code** |                            **Description**                            |                               **Developer Details**                               |                                                  **Typical Occurrences**                                                  |                                    **Next Steps**                                    |
|---------------------------------------------------------------------------|-----------------|-----------------------------------------------------------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------|
| "Conditional field psuIPAddress is expected when isLivePsuRequest='true'" | `FORMAT_ERROR`  | "IP address" field is mandatory if parameter "isLivePsuRequest"=true. | "path\[i\]=;" where i = 0, 1, 2, etc. for each element that failed the validation | Typically occurs because the TPP has provided in request "isLivePsuRequest"=true and didn't provide the IP address value. | Include the IP address of PSU in the request when providing "isLivePsuRequest"=true. |

**Error example code**

```json
{  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "Conditional field psuIPAddress is expected when isLivePsuRequest='true",
        "Details": "path[0]=/requestInfo/psuIPAddress"
 }
    ]
  }
}
```

