# Domestic VRP Consent Initiation
source: https://developer.mastercard.com/open-banking-connect/documentation/pisfeatures/domestic-vrp-consent-initiation-request/index.md

## Request overview {#request-overview}

The goal of this request is to initiate a VRP that is authorized by the PSU.

### Endpoint details {#endpoint-details}

|     **Endpoints/Resources**      | **Method** |                **API Profiles**                 |                                      **Description**                                      |
|----------------------------------|------------|-------------------------------------------------|-------------------------------------------------------------------------------------------|
| /payments/domestic-vrps/consents | `POST`     | CMA9 (restricted to specific ASPSPs and TPPs\*) | Request Domestic Variable Recurring Payment Consent initiation using the Redirect method. |

\*UK only. Available on subscription.

The following sequence diagram shows the flow for initiating a Domestic VRP Consent request.
Diagram vrp_consent_initiation

## Request scenario {#request-scenario}


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

#### 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 and 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                                                                                                     | -                                                                                                                                |
| `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}$`                          |
| `tppRedirectURI`                 | URI of the TPP, where the transaction flow shall be redirected to.                                                                                                                                                                    | ASPSP           | This element is used to specify the URI where PSU should be redirected after consent authorization.                                                                                                        | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Call back URI where to redirect the PSU after authorisation of the consent                                                                             | 1-256                                                                                                                            |
| `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 or false                                                                                                           |
| `psuIPAddress`                   | The forwarded IP address field consists of the corresponding HTTP request IP address field between PSU and TPP.                                                                                                                       | ASPSP           | It shall be included only if the PSU actively initiated this request                                                                                                                                       | C             | 0..1 String                                                                                                                                                                                                                                                                                           | IP address of PSU's terminal device                                                                                                                    | 1-256 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, it can be used by ASPSP's security mechanisms. In order to avoid rejections, it is recommended to include this field when providing isLivePsuRequest and psuIPAddress. | O             | 0..1 String                                                                                                                                                                                                                                                                                           | PSU's browser agent details                                                                                                                            | 1-256                                                                                                                            |
| `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 merchant details                                                                                                        | -                                                                                                                                |
| `id`                             | Merchant identification code to identify the merchant                                                                                                                                                                                 | MC              | Unique Merchant identifier per TPP, which could be used for reporting or 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                                                                                                                            |
| `flags`                          | The list of flags which can set the additional parameters in returned data                                                                                                                                                            | MC              | This element is used to specify additional parameters which influence data returned in response                                                                                                            | O             | O..1 Enum: \['Return.Raw.Consent', 'RETURN_REFUND _ACCOUNT'\]                                                                                                                                                                                                                                         | Request information flags which can influence the behavior or returned data                                                                            |                                                                                                                                  |
| `consent`                        | VRP Consent                                                                                                                                                                                                                           | ASPSP           | VRP consent details are provided within this object                                                                                                                                                        | M             | 1..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define VRP consent details                                                                                                     |                                                                                                                                  |
| `controlParameters`              | This object is used to submit VRP consent control parameters to the ASPSP                                                                                                                                                             | ASPSP           | VRP consent control parameters are provided within this object                                                                                                                                             | M             | 1..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define VRP consent control parameters                                                                                          |                                                                                                                                  |
| `vrpTypes`                       | Used to specify the type of payments that can be made under this VRP consent                                                                                                                                                          | ASPSP           | The type of Variable Recurring Payment is set in this field                                                                                                                                                | M             | 1..\* Enum: `['SWEEPING']`                                                                                                                                                                                                                                                                            | Specifies the types of payments that can be made under this VRP consent, e.g. sweeping payment. Subsequently other ecommerce payments can be supported |                                                                                                                                  |
| `validFrom`                      | The first date of execution for a VRP payment                                                                                                                                                                                         | ASPSP           | This element is used to specify the date of the first VRP payment                                                                                                                                          | O             | O..1 ISODate                                                                                                                                                                                                                                                                                          | Start date by which a consent starts to be valid.                                                                                                      | validFrom should not be in the past, e.g. validFrom \>= Today() If validTo is specified, then validFrom should be before validTo |
| `validTo`                        | The last applicable day of execution for a given VRP. If not given, the VRP is considered as endless, until cancelled by PSU.                                                                                                         | ASPSP           | This element is used to specify payment last execution date                                                                                                                                                | O             | O..1 ISODate                                                                                                                                                                                                                                                                                          | End date for consent validity.                                                                                                                         | If validTo is specified then it should be greater than validFrom                                                                 |
| `maximalIndividualAmount`        | This object is used to set details for max amount per VRP payment                                                                                                                                                                     | ASPSP           | Currency and amount details should be included in this object to specify the max amount for a VRP payment                                                                                                  | M             | 1..1 Object                                                                                                                                                                                                                                                                                           | Structure aiming to embed maximal amount and currency for each VRP in the currently defined series                                                     |                                                                                                                                  |
| `currency`                       | A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds" | ASPSP           | The currency of the amount used in the VRP                                                                                                                                                                 | M             | 1..1 Enum: `["GBP"]`                                                                                                                                                                                                                                                                                  | Specifies the currency of the included amount                                                                                                          |                                                                                                                                  |
| `amount`                         | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217                                                                                                         | ASPSP           | This element is used to specify the amount of money to be processed for the VRP                                                                                                                            | M             | 1..1 Decimal                                                                                                                                                                                                                                                                                          | Maximal amount of money that can be moved between the debtor and creditor accounts                                                                     |                                                                                                                                  |
| `periodicLimits`                 | This object is used to set the details of the periodic limits for a VRP                                                                                                                                                               | ASPSP           | Frequency details and max total VRP amount can be set in the details of the object                                                                                                                         | M             | 1..\* Object                                                                                                                                                                                                                                                                                          | Set of elements specifying amount and currency limit per specified frequency                                                                           |                                                                                                                                  |
| `frequency`                      | Frequency rule for VRPs                                                                                                                                                                                                               | ASPSP           | This element is used to specify the frequency of a VRP                                                                                                                                                     | M             | 1..1 Enum: \[' DAY', 'WEEK', 'FORTNIGHT', 'MONTH', 'HALF_YEAR', 'YEAR'\]                                                                                                                                                                                                                              | Determines how often a variable recurring payment will be made.                                                                                        | It is recommended to use Fortnight frequency while setting frequencyAlignment to Consent.                                        |
| `frequencyAlignment`             | The date by which a VRP is allowed to be initiated within the specified frequency                                                                                                                                                     | ASPSP           | Is used to specify the alignment of the frequency rule                                                                                                                                                     | M             | 1..1 Enum: \['CONSENT', 'CALENDAR'\]                                                                                                                                                                                                                                                                  | The date by which the VRP is allowed to be initiated with the specified frequency                                                                      |                                                                                                                                  |
| `currency`                       | A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds" | ASPSP           | The currency of the amount used in the VRP at the specified frequency                                                                                                                                      | M             | 1..1 Enum: \["GBP"\]                                                                                                                                                                                                                                                                                  | Specifies the currency of the periodic amount per frequency                                                                                            |                                                                                                                                  |
| `amount`                         | A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.                                                                                                        | ASPSP           | This element is used to specify the amount of money to be processed for the VRP per the specified frequency                                                                                                | M             | 1..1 Decimal                                                                                                                                                                                                                                                                                          | Maximal periodic amount of money that can be moved between the debtor and creditor accounts per frequency                                              |                                                                                                                                  |
| `creditorAccount`                | Unambiguous identification of the creditor account to which a credit entry will be posted as a result of the payment                                                                                                                  | ASPSP           | Specifies the account in a financial institution servicing the creditor                                                                                                                                    | C             | 0..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define the creditor account details                                                                                            | creditor details (account, agent and name) are required for Sweeping vrpType                                                     |
| `schemeName`                     | Name of the identification scheme, in a coded form as published in an external list                                                                                                                                                   | ASPSP           | This field is used to identify an account scheme                                                                                                                                                           | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Enum: `['UK.AccountNumber'] Account scheme name`                                                                                                       |                                                                                                                                  |
| `identification`                 | Identification assigned by an institution to differentiate an account. This identification is known by the account owner                                                                                                              | ASPSP           | This element is used to specify the account identification number                                                                                                                                          | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Account identification which can be used on payload-level to address specific accounts                                                                 |                                                                                                                                  |
| `creditorName`                   | Name by which a party is known, and which is usually used to identify that party                                                                                                                                                      | ASPSP           | This element is used to specify creditor name                                                                                                                                                              | O             | 0..1 String                                                                                                                                                                                                                                                                                           | Name of the Beneficiary/Creditor                                                                                                                       | creditor details (account, agent and name) are required for Sweeping vrpType                                                     |
| `creditorAgent`                  | Unambiguous identification of the financial institution                                                                                                                                                                               | ASPSP           | Specifies the financial institution servicing an account for the creditor                                                                                                                                  | C             | 0..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define the creditor agent details                                                                                              | creditor details (account, agent and name) are required for Sweeping vrpType                                                     |
| `clearingSystemIdentification`   | Name of the identification scheme, in a coded form as published in an external list                                                                                                                                                   | ASPSP           | This field is used to specify the type of identification used to identify an agent                                                                                                                         | M             | 1..1 Enum: \['UK.SortCode'\]                                                                                                                                                                                                                                                                          | Clearing system identification scheme                                                                                                                  |                                                                                                                                  |
| `memberIdentification`           | Code allocated to a financial institution by the ISO 9362 Registration Authority to identify the financial institution                                                                                                                | ASPSP           | This element is used to specify the financial institution identification code                                                                                                                              | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Identification code to identify the financial institution                                                                                              |                                                                                                                                  |
| `debtorAccount`                  | Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction                                                                                                            | ASPSP           | Specify account in a financial institution servicing the debtor                                                                                                                                            | C             | 0..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define the debtor account details                                                                                              | Both debtorAccount and debtorAgent are required when at least one is specified                                                   |
| `identification`                 | Identification assigned by an institution to identify an account. This identification is known by the account owner                                                                                                                   | ASPSP           | This element is used to specify the account identification number                                                                                                                                          | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Account identification which can be used on payload-level to address specific accounts                                                                 |                                                                                                                                  |
| `schemeName`                     | Name of the identification scheme, in a coded form as published in an external list                                                                                                                                                   | ASPSP           | This field is used to identify the type of Identification used to identify an account                                                                                                                      | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Enum: `['UK.AccountNumber'] Account scheme name`                                                                                                       |                                                                                                                                  |
| `debtorName`                     | Name by which a party is known, and which is usually used to identify that party                                                                                                                                                      | ASPSP           | This element is used to specify debtor name                                                                                                                                                                | C             | 0..1 String                                                                                                                                                                                                                                                                                           | Name by which a party is known, and which is usually used to identify that party                                                                       | max 256 chars debtorAccount and debtorAgent details need to be provided if debtorName is included                                |
| `debtorAgent`                    | Unambiguous identification of the financial institution of the debtor to which a debit entry will be made as a result of the transaction                                                                                              | ASPSP           | Specifies the financial institution servicing an account for the debtor                                                                                                                                    | C             | 0..1 Object                                                                                                                                                                                                                                                                                           | Set of elements used to define the debtor agent details                                                                                                | Both debtorAccount and deborAgent are required when at least one is specified                                                    |
| `memberIdentification`           | Code allocated to a financial institution by the ISO 9362 Registration Authority to identify the financial institution                                                                                                                | ASPSP           | This element is used to specify the financial institution identification code                                                                                                                              | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Identification code to identify the financial institution                                                                                              |                                                                                                                                  |
| `clearingSystemIdentification`   | Name of the identification scheme, in a coded form as published in an external list.                                                                                                                                                  | ASPSP           | This field is used to identify the type of identification used to identify an agent.                                                                                                                       | M             | 1..1 Enum: `['UK.SortCode']`                                                                                                                                                                                                                                                                          | Clearing system identification scheme                                                                                                                  |                                                                                                                                  |
| `remittanceInformationReference` | Reference information provided by the creditor to allow the identification of the underlying documents                                                                                                                                | ASPSP           | If available, the TPP should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money                                 | O             | O..1 String                                                                                                                                                                                                                                                                                           | Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.                                                      |                                                                                                                                  |
| `risk`                           | The object contains a list of fields used to send risk information to financial institution                                                                                                                                           | ASPSP           | It is used to specify additional details for risk scoring for Payments                                                                                                                                     | O             | 0..1 Object                                                                                                                                                                                                                                                                                           | The Risk object is sent by the initiating party to the ASPSP. It is used to specify additional details for payments risk scoring                       | The object is specific for CMA9 profile                                                                                          |
| `paymentContextCode`             | Information that specifies payment context for a payment                                                                                                                                                                              | ASPSP           | Specifies the payment context                                                                                                                                                                              | O             | O..1 Enum: \[BILL_PAYMENT, ECOMMERCE_GOODS, ECOMMERCE_SERVICES, OTHER, PERSON_TO_PERSON, BILLING_GOODS_AND_ SERVICES_IN_ADVANCE, BILLING_GOODS_AND_ SERVICES_IN_ARREARS, PISP_PAYEE, ECOMMERCE_MERCHANT _INITIATED_PAYMENT, FACE_TO_FACE _POINT_OF_SALE, TRANSFER_TO_SELF, TRANSFER_TO _THIRD_PARTY\] | Specifies the payment context code                                                                                                                     | maxLength: 50 minLength: 1                                                                                                       |
| `merchantCategoryCode`           | Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction                                                                                                                | ASPSP           | Unique merchant category code                                                                                                                                                                              | O             | O..1 String                                                                                                                                                                                                                                                                                           | Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction                                 | 1-256 OBIE specifications recommend to send strings of 3-4 characters                                                            |
| `merchantCustomerIdentification` | Field is to enable capturing of a merchant's PSU unique identifier                                                                                                                                                                    | ASPSP           | Used to specify the merchant's PSU identifier                                                                                                                                                              | O             | O..1 String                                                                                                                                                                                                                                                                                           | The unique customer identifier of the PSU with the merchant                                                                                            | 1-256 OBIE specifications recommend to send strings of max 70 characters                                                         |
| `deliveryAddress`                | Information that locates and identifies delivery address                                                                                                                                                                              | ASPSP           | This element is usually used to identify the delivery address.                                                                                                                                             | O             | O..1 Object                                                                                                                                                                                                                                                                                           | Information that locates and identifies a specific address, as defined by postal services or in free format text.                                      |                                                                                                                                  |
| `addressLine`                    | Information that locates and identifies a specific address, as defined by postal services, that is presented in free format text                                                                                                      | ASPSP           | This element is used to specify the specific postal address                                                                                                                                                | O             | O..2 String                                                                                                                                                                                                                                                                                           | Address line                                                                                                                                           | maxLength: 70 minLength: 1                                                                                                       |
| `street`                         | Name of a street or thoroughfare                                                                                                                                                                                                      | ASPSP           | This element is used to specify the street name                                                                                                                                                            | O             | O..1 String                                                                                                                                                                                                                                                                                           | Name of a street or thoroughfare.                                                                                                                      | maxLength: 70 minLength: 1                                                                                                       |
| `buildingNumber`                 | Number that identifies the position of a building on a street                                                                                                                                                                         | ASPSP           | This element is used to specify the building number                                                                                                                                                        | O             | O..1 String                                                                                                                                                                                                                                                                                           | Number that identifies the position of a building on a street.                                                                                         | maxLength: 16 minLength: 1                                                                                                       |
| `postalCode`                     | This element is used to specify the post code                                                                                                                                                                                         | ASPSP           | This element is used to specify the post code                                                                                                                                                              | O             | O..1 String                                                                                                                                                                                                                                                                                           | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.                            | maxLength: 16 minLength: 1                                                                                                       |
| `city`                           | Name of a built-up area, with defined boundaries, and a local government.                                                                                                                                                             | ASPSP           | This element is used to specify the city name                                                                                                                                                              | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Name of a built-up area, with defined boundaries, and a local government. Max35Text                                                                    | maxLength: 35 minLength: 1                                                                                                       |
| `countrySubDivision`             | Identifies a subdivision of a country such as state, region, county.                                                                                                                                                                  | ASPSP           | This element is used to specify the county code                                                                                                                                                            | O             | O..1 String                                                                                                                                                                                                                                                                                           | Identifies a subdivision of a country, for instance state, region, county. Max35Text                                                                   | maxLength: 35 minLength: 1                                                                                                       |
| `country`                        | Country in which a person resides                                                                                                                                                                                                     | ASPSP           | This element is used to specify the country code                                                                                                                                                           | M             | 1..1 String                                                                                                                                                                                                                                                                                           | Nation with its own government, occupying a particular territory. CountryCode `^[A-Z]{2,2}$`                                                           | ISO 3166 ALPHA 2 CHAR                                                                                                            |

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 information received from the TPP                                                                              | 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                                                                    |
| `aspspSCAApproach`    | Type of links admitted in this response                                                                      | MC              | This element is used to specify the SCA link types                                                                    | O             | O..1             | Enum: \["REDIRECT"\] | Strong Customer Authentication (SCA)                                                                                            |                                                                       |
| `consentRequestId`    | Unique identification to uniquely identify the consent request                                               | TPP             | This element could be used for request-response tracking                                                              | O             | O..1             | String               | Request consent identification                                                                                                  | 1-256                                                                 |
| `_links`              | The list of link types admitted in response, (further links might be added for ASPSP defined extensions)     | MC              | The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP when processing the request | O             | 0..1             | Object               | A list of hyperlinks to be recognized by the TPP                                                                                |                                                                       |
| `scaRedirect`         | In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser | TPP             | This element is used to specify the URL where the PSU should be redirected for consent authorization                  | O             | O..1             | String               | URL "scaRedirect": In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser |                                                                       |
| `additionalData`      | Specifies additional parameters in returned data                                                             | TPP             | This element is used to specify additional parameters returned in response                                            | C             | 0..1             | Object               | Elements used to define the additional data details                                                                             | Returned only if requestInfo.flags had at least one flag              |
| `rawConsent`          | Returns raw consent data from associated ASPSP                                                               | TPP             | Raw consent data could be used to extract additional information sent by ASPSP                                        | O             | 0..1             | String               | Raw Consent, returned only if requestInfo.flags contained 'Return.Raw.Consent' value                                            | Returned only if requestInfo.flags contained Return.Raw.Consent value |

## 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**                                     |
|----------------------------------------------------------------------------------------------------|-----------------|----------------------------------------------------------------------------|-------------------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------------------|
| "\[Path 'path\[i\]'\] Numeric instance is lower than the required minimum (minimum: 0, found: %s)" | `FORMAT_ERROR`  | The value provided for maximal individual amount is less or equal to zero. | Return as path to the element that failed validation. | Typically occurs due to submitting an invalid amount value. | Ensure that a value greater than 0 is populated for amount and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "[Path 'path[i]'] Numeric instance is lower than the required minimum (minimum: 0, found: %s)",
        "Details": "path[0]=/consent/controlParameters/maximalIndividualAmount/amount" }
    ]
  }
}
```

|                                            **Message**                                             | **Reason Code** |                            **Description**                             |                 **Developer Details**                 |                   **Typical Occurrences**                   |                                    **Next Steps**                                     |
|----------------------------------------------------------------------------------------------------|-----------------|------------------------------------------------------------------------|-------------------------------------------------------|-------------------------------------------------------------|---------------------------------------------------------------------------------------|
| "\[Path 'path\[i\]'\] Numeric instance is lower than the required minimum (minimum: 0, found: %s)" | `FORMAT_ERROR`  | The value provided for periodic amount limit is less or equal to zero. | Return as path to the element that failed validation. | Typically occurs due to submitting an invalid amount value. | Ensure that a value greater than 0 is populated for amount and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "[Path 'path[i]'] Numeric instance is lower than the required minimum (minimum: 0, found: %s)",
        "Details": "path[0]=/consent/controlParameters/periodicLimits/amount" }
    ]
  }
}
```

|           **Message**            |         **Reason Code**          |                                                                               **Description**                                                                               |                 **Developer Details**                 |                             **Typical Occurrences**                             |                                             **Next Steps**                                              |
|----------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| "validTo is preceding validFrom" | `VALIDFROM_GREATER_THAN_VALIDTO` | The value provided for validFrom is greater than validTo. This scenario is invalid as the selected dates should define the start and end dates of the VRP's consent period. | Return as path to the element that failed validation. | This error typically occurs due to inconsistency between validFrom and validTo. | Ensure that the date value populated in validFrom is before the validTo date and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "VALIDFROM_GREATER_THAN_VALIDTO",
        "Description": "validTo is preceding validFrom" }
    ]
  }
}
```

|                        **Message**                        |        **Reason Code**         |                                                                                **Description**                                                                                 |                 **Developer Details**                 |                           **Typical Occurrences**                            |                                                **Next Steps**                                                |
|-----------------------------------------------------------|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| "validFrom and/or validTo cannot be a date from the past" | `INVALID_VALIDFROM_OR_VALIDTO` | The value provided for validFrom or validTo is in the past. This scenario is invalid as the selected dates should define the start and end dates of the future VRP's schedule. | Return as path to the element that failed validation. | This error typically occurs due to past validFrom or validTo dates provided. | Ensure that values populated in validFrom and validTo are current or future dates and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "INVALID_VALIDFROM_OR_VALIDTO",
        "Description": "validFrom and/or validTo cannot be a date from the past" }
    ]
  }
}
```

|                                             **Message**                                             | **Reason Code** |                                                 **Description**                                                 |                 **Developer Details**                 |                          **Typical Occurrences**                          |                                            **Next Steps**                                             |
|-----------------------------------------------------------------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|---------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
| "\[Path 'path\[i\]'\] String %s is invalid against requested date format(s) yyyy-MM-dd'T'HH:mm:ssZ" | `FORMAT_ERROR`  | Value provided for validFrom or validTo does not comply with the standard format, e.g., yyyy-MM-dd'T'HH:mm:ssZ. | Return as path to the element that failed validation. | This error typically occurs due to an invalid entry in validTo/validFrom. | Ensure that the value populated in validFrom and validTo complies to the accepted format: YYYY-MM-DD. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "[Path '/consent/controlParameters/validTo'] String \"20202-04-18\" is invalid against requested date format(s) yyyy-MM-dd'T'HH:mm:ssZ",
        "Details": "path[0]=/consent/controlParameters/validTo" },
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "[Path '/consent/controlParameters/validFrom'] String \"20-03-18\" is invalid against requested date format(s) yyyy-MM-dd'T'HH:mm:ssZ",
        "Details": "path[0]=/consent/controlParameters/validFrom" }
    ]
  }
}
```

|                                  **Message**                                   | **Reason Code** |                       **Description**                        | **Developer Details** |                                      **Typical Occurrences**                                       |                             **Next Steps**                              |
|--------------------------------------------------------------------------------|-----------------|--------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
| "creditor details (account, agent and name) are required for selected vrpType" | `FORMAT_ERROR`  | Failed to provide all creditor details for SWEEPING vrpType. | N/A                   | Typically occurs when TPP does not provide all creditor details while selecting vrpType: Sweeping. | Ensure that all creditor details are present and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": " creditor details (account, agent and name) are required for selected vrpType ",
        "Details": "path[0]=/consent/creditorAccount" }
    ]
  }
}
```

|                                     **Message**                                      | **Reason Code** |                                           **Description**                                           | **Developer Details** |                                                                 **Typical Occurrences**                                                                  |                                 **Next Steps**                                  |
|--------------------------------------------------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------|
| "creditorAgent is required for the selected vrpType or creditorAccount/creditorname" | `FORMAT_ERROR`  | Failed to provide creditorAgent for the selected vrpType=SWEEPING or creditorAccount./creditorName. | N/A                   | Typically occurs when TPP does not provide creditorAgent details while selecting vrpType: Sweeping or while providing only creditorAccount/creditorName. | Ensure that creditorAgent object details are present and re-submit the message. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "FORMAT_ERROR",
        "Description": " creditorAgent is required for the selected vrpType or creditorAccount/creditorname ",
        "Details": "path[0]=/creditorAgent"
 }
    ]
  }
}
```

|                   **Message**                    | **Reason Code** |                                                                                                   **Description**                                                                                                    | **Developer Details** |                                     **Typical Occurrences**                                      |                                                                                                                                          **Next Steps**                                                                                                                                          |
|--------------------------------------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|--------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| "Method not supported by Provider's API profile" | `NOT_FOUND`     | Depending on the API Profile implemented at the ASPSP side, some of the endpoints may not be available for that ASPSP. The information about API Profile support is provided in the specification for each endpoint. | N/A                   | Typically happens with new customers who send requests not supported by the ASPSP's API profile. | Verify the specification and ensure that the endpoint is supported by the API Profile returned for the ASPSP (for example, in /payments/aspsps or /accounts/aspsps). If you think you should be able to access the specified endpoint, please contact the Open Banking Connect API support team. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "NOT_FOUND",
        "Description": "Method not supported by Provider's API profile" }
    ]
  }
}
```

|                                **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"
 }
    ]
  }
}
```

|                                   **Message**                                   | **Reason Code** |                                           **Description**                                           | **Developer Details** |                                         **Typical Occurrences**                                          |                                            **Next Steps**                                            |
|---------------------------------------------------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| "Both debtorAccount and deborAgent are required when at least one is specified" | `FORMAT_ERROR`  | If one of the objects (debtorAccount or debtorAgent) was specified, the other one becomes required. | N/A                   | Typically occurs when one of debtorAccount or deborAgent was added to the request and the other was not. | If one of the debtorAccount or deborAgent was specified, ensure that the other one is also included. |

**Error example code**

```json
{"Errors": {
"Error": [
{"Source": "OBC",
"ReasonCode": "FORMAT_ERROR",
"Description": "Both debtorAccount and deborAgent are required when at least one is specified",
"Details": "path[0]=/consent/debtorAccount" 
} 
    ] 
  } 
}
or 
{"Errors": {
"Error": [
{"Source": "OBC",
"ReasonCode": "FORMAT_ERROR",
"Description": "Both debtorAccount and deborAgent are required when at least one is specified",
"Details": "path[0]=/consent/debtorAgent" 
} 
    ] 
  } 
}
```

|                                      **Message**                                      | **Reason Code** |                                       **Description**                                       |                               **Developer Details**                               |                                                 **Typical Occurrences**                                                  |                                         **Next Steps**                                         |
|---------------------------------------------------------------------------------------|-----------------|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| "debtorAccount and debtorAgent details need to be provided if debtorName is included" | `FORMAT_ERROR`  | debtorAccount and debtorAgent were not provided while having debtorName details in request. | "path\[i\]=;" where i = 0, 1, 2, etc. for each element that failed the validation | Typically occurs when TPP does not include debtorAccount and debtorAgent data while including debtorName in the request. | Ensure that debtorAccount and debtorAgent are included while having debtorName in the request. |

**Error example code**

```json
{
    "Errors": {
       "Error": [
           {
                "Source": "OBC",
                "ReasonCode": "FORMAT_ERROR",
                "Description": "debtorAccount and debtorAgent details need to be provided if debtorName is included ",
                "Details": "path[0]=/consent/debtorAgent"}
    ]
 }
}
```

