# SEPA Payment Initiation Consent
source: https://developer.mastercard.com/open-banking-connect/documentation/pisfeatures/sepa-payment-initiation-consent-request/index.md

## Request overview {#request-overview}

The goal of this request is to create the consent that is authorized by the Payment Service User (PSU) for the initiation of a SEPA payment.
Warning: SEPA payments are **NOT** supported by the CMA9 standard.

### Endpoint details {#endpoint-details}

|         **Endpoints/Resources**          | **Method** |                                                        **API Profiles**                                                        |       **Description**        |
|------------------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------|------------------------------|
| /payments/sepa-credit-transfers/consents | `POST`     | Polish API, NextGenPSD2, STET, Budapest Bank, Czech Open Banking Standard API Profile, Slovak Banking API Standard API Profile | Submits SEPA payment consent |

The following sequence diagram shows the flow for getting SEPA payment initiation consent.
Diagram sepa_payment_initiate_consent

## Request scenario {#request-scenario}


API Reference: `POST /payments/sepa-credit-transfers/consents`

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

N/A

#### 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                                                                                        | -                                                                                                                                                                                                                           |
| `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             | String UUID | Free field that allows for the addition of information that can be referenced for future use                                              | 36                                                                                                                                                                                                                          |
| `tppRedirectURI`                    | URI of the TPP, where the transaction flow shall be redirected to after a Redirect                                                                                                                                                    | ASPSP           | This element is used to specify the URI where should be redirected PSU after consent authorization                                                                                                                       | M             | 1..1             | String      | Call back URI where to redirect the PSU after authorization of the consent                                                                | 1-256                                                                                                                                                                                                                       |
| `aspspId`                           | ID of a financial institution servicing the Accounts of the PSU                                                                                                                                                                       | ASPSP           | Identification of Account Servicing Payment Service Provider (ASPSP)                                                                                                                                                     | M             | 1..1             | String UUID | This element is used to specify the identification code of a financial institution which holds PSU accounts                               | 36                                                                                                                                                                                                                          |
| `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 contained 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, 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                                                                                                               | 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 the merchant details                                                                                       | -                                                                                                                                                                                                                           |
| `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                                                                                                                                                                                                                       |
| `credentials`                       | Send PSU credentials to ASPSP that support embedded flow                                                                                                                                                                              | ASPSP           | Include id and value for each credential required by the ASPSP                                                                                                                                                           | O             | 0..1             | Object      | Set of elements used to define the credentials provided by PSU. Data map \<\\string, string\>                                             | Maximum 20 value pairs. Maximum 50 symbols for each id and value. List of supported credentials can be received in response to Get List of ASPSP request                                                                    |
| `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             | 0..1             | Enum        | Request information flags which can influence the behavior or returned data.                                                              | Enum: \`Return.Raw.Consent, 'RETURN_REFUND_ACCOUNT'\] 'Contact your Mastercard contact, to request enabling of refund capability, before submitting a payment initiation consent request with 'RETURN_REFUND_ACCOUNT' flag' |
| `payments`                          | The object contains the list of fields used to send a payment instruction to financial institution                                                                                                                                    | MC              | This element encapsulates all payment fields                                                                                                                                                                             | M             | 1..1             | Object      | Set of elements used to define the payments details                                                                                       | -                                                                                                                                                                                                                           |
| `endToEndIdentification`            | Unique identification assigned by the TPP to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.                                                             | ASPSP           | The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.                                            | M             | 1..1             | String      | Field is available for TPPs to enable end-to-end identification of the transaction                                                        | 1-18                                                                                                                                                                                                                        |
| `localInstrument`                   | User community specific instrument                                                                                                                                                                                                    | ASPSP           | This element is used to specify a local instrument, local clearing option and/or further qualify the service or service level.                                                                                           | M             | 1..1             | Enum        | User community specific instrument specifies which clearing system should be used to process the payment instruction                      | Enum:\[`SEPA`, `SEPA_INSTANT`\] SEPA_INSTANT local instrument can be used only for instant payments sent from ASPSPs supporting STET and NextGenPSD2 standards.                                                             |
| `instructionPriority`               | Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction                                                                              | ASPSP           | This element is used to specify urgency mode of the payment.                                                                                                                                                             | M             | 1..1             | Enum        | The way the transfer should be settled                                                                                                    | Enum: `Normal`, `Urgent`                                                                                                                                                                                                    |
| `categoryPurpose`                   | Specifies the high-level purpose of the instruction based on a set of pre-defined categories                                                                                                                                          | ASPSP           | This is used by the initiating party to provide information concerning the processing of the payment.                                                                                                                    | O             | 0..1             | Enum        | Category purpose                                                                                                                          | Enum: \[`CASH`, `CORT`, `DVPM`, `INTC`, `TREA` \]                                                                                                                                                                           |
| `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                                                                                                                                                          | O             | 0..1             | Object      | Set of elements used to define the debtor account details                                                                                 | -                                                                                                                                                                                                                           |
| `iban`                              | International Bank Account Number (IBAN) - identification used internationally by financial institutions to uniquely identify the account of a customer                                                                               | ASPSP           | This element is used to specify account identification number                                                                                                                                                            | M             | 1..1             | String      | Identification of the debtor account.                                                                                                     | Only IBAN code is allowed.                                                                                                                                                                                                  |
| `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           | Specify financial institution servicing an account for the debtor                                                                                                                                                        | O             | 0..1             | Object      | Set of elements used to define the debtor agent details                                                                                   | -                                                                                                                                                                                                                           |
| `bicfi`                             | When transferring money across international lines nearly always needs to use a SWIFT/BIC code, since it's the way banks and money transfer services identify where to send money on a global scale.                                  | ASPSP           | The bank SWIFT/BIC code is used to identify a specific bank in an international transaction                                                                                                                              | M             | 1..1             | String      | Identification of the debtor bank (BIC/SWIFT code).                                                                                       | 1-256                                                                                                                                                                                                                       |
| `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                                                                                                                                                                              | O             | 0..1             | String      | Debtor name.                                                                                                                              | 1-256                                                                                                                                                                                                                       |
| `debtorAddress`                     | Information that locates and identifies a specific address, as defined by postal services.                                                                                                                                            | ASPSP           | This element is usually used to identify the creditor party address.                                                                                                                                                     | O             | 0..1             | Object      | Set of elements used to define the debtor address details.                                                                                | -                                                                                                                                                                                                                           |
| `street`                            | Name of a street or thoroughfare.                                                                                                                                                                                                     | ASPSP           | This element is used to specify the street name                                                                                                                                                                          | O             | O..1             | String      | Street name.                                                                                                                              | 1-70                                                                                                                                                                                                                        |
| `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      | Building number.                                                                                                                          | 1-256                                                                                                                                                                                                                       |
| `city`                              | Name of a built-up area, with defined boundaries, and a local government.                                                                                                                                                             | ASPSP           | This element is used to specify the city name                                                                                                                                                                            | O             | O..1             | String      | City name.                                                                                                                                | 1-256                                                                                                                                                                                                                       |
| `postalCode`                        | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.                                                                                                           | ASPSP           | This element is used to specify the post code                                                                                                                                                                            | O             | O..1             | String      | Postal code.                                                                                                                              | 1-256                                                                                                                                                                                                                       |
| `countrySubDivision`                | Identifies a subdivision of a country such as state, region, county.                                                                                                                                                                  | ASPSP           | This element is used to specify the county code                                                                                                                                                                          | O             | 0..1             | String      | Country sub-division.                                                                                                                     | 1-256                                                                                                                                                                                                                       |
| `country`                           | Country in which a person resides.                                                                                                                                                                                                    | ASPSP           | This element is used to specify the country code                                                                                                                                                                         | O             | 0..1             | String      | Country name.                                                                                                                             | ISO 3166 ALPHA 2 CHAR                                                                                                                                                                                                       |
| `instructedAmount`                  | Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.                                                                               | ASPSP           | This amount has to be transported unchanged through the transaction chain                                                                                                                                                | M             | 1..1             | Object      | Structure aiming to embed the amount and the currency to be used.                                                                         | -                                                                                                                                                                                                                           |
| `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 transaction                                                                                                                                                                           | M             | 1..1             | Enum        | Specifies the currency of the amount or of the account                                                                                    | Enum: `EUR` Only EUR is allowed                                                                                                                                                                                             |
| `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                                                                                                                                                      | M             | 1..1             | Decimal     | Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the TPP | Double, min: 0                                                                                                                                                                                                              |
| `creditorAccount`                   | Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.                                                                                              | ASPSP           | Specify account in a financial institution servicing the creditor                                                                                                                                                        | M             | 1..1             | Object      | Set of elements used to define the creditor account details                                                                               | -                                                                                                                                                                                                                           |
| `iban`                              | International Bank Account Number (IBAN) - identification used internationally by financial institutions to uniquely identify the account of a customer.                                                                              | ASPSP           | This element is used to specify account identification number.                                                                                                                                                           | M             | 1..1             | String      | Identification of the creditor account.                                                                                                   | Only IBAN is allowed.                                                                                                                                                                                                       |
| `creditorAgent`                     | Unambiguous identification of the financial institution of the creditor to which a credit entry will be posted as a result of the payment transaction.                                                                                | ASPSP           | Specify financial institution servicing an account for the debtor                                                                                                                                                        | O             | 0..1             | Object      | Set of elements used to define the creditor agent details.                                                                                | -                                                                                                                                                                                                                           |
| `bicfi`                             | When transferring money across international lines nearly always needs to use a SWIFT/BIC code, since it's the way banks and money transfer services identify where to send money on a global scale.                                  | ASPSP           | The bank SWIFT/BIC code is used to identify a specific bank in an international transaction                                                                                                                              | O             | 0..1             | String      | Identification of the creditor bank (BIC/SWIFT code).                                                                                     | 1-256                                                                                                                                                                                                                       |
| `creditorAgentName`                 | Field is used to pass the name of the financial institution servicing the creditor account.                                                                                                                                           | ASPSP           | The name is used to identify the agent servicing the creditor account.                                                                                                                                                   | O             | 0..1             | String      | Name of the financial institution servicing an account for the creditor.                                                                  | 1-256 Some of the ASPSPs supporting NextGenPSD2 or STET profile mandatorily require creditorAgentName                                                                                                                       |
| `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                                                                                                                                                                            | M             | 1..1             | String      | Name of the Beneficiary/Creditor                                                                                                          | 1-70                                                                                                                                                                                                                        |
| `creditorAddress`                   | Information that locates and identifies a specific address, as defined by postal services.                                                                                                                                            | ASPSP           | This element is usually used to identify the creditor party address.                                                                                                                                                     | M             | 1..1             | Object      | Set of elements used to define the creditor address details                                                                               | -                                                                                                                                                                                                                           |
| `street`                            | Name of a street or thoroughfare                                                                                                                                                                                                      | ASPSP           | This element is used to specify the street name                                                                                                                                                                          | O             | O..1             | String      | Street name                                                                                                                               | 1-70                                                                                                                                                                                                                        |
| `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      | Building number                                                                                                                           | 1-256                                                                                                                                                                                                                       |
| `city`                              | Name of a built-up area, with defined boundaries, and a local government.                                                                                                                                                             | ASPSP           | This element is used to specify the city name                                                                                                                                                                            | O             | O..1             | String      | City name                                                                                                                                 | 1-256                                                                                                                                                                                                                       |
| `postalCode`                        | Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.                                                                                                           | ASPSP           | This element is used to specify the post code                                                                                                                                                                            | O             | O..1             | String      | Postal code                                                                                                                               | 1-256                                                                                                                                                                                                                       |
| `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      | County name                                                                                                                               | 1-256                                                                                                                                                                                                                       |
| `country`                           | Country in which a person resides                                                                                                                                                                                                     | ASPSP           | This element is used to specify the country code                                                                                                                                                                         | M             | 0..1             | String      | Country name                                                                                                                              | ISO 3166 ALPHA 2 CHAR                                                                                                                                                                                                       |
| `remittanceInformationUnstructured` | Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.                 | ASPSP           | Description of the payment                                                                                                                                                                                               | C             | 0..1             | String      | If available, the TPP should provide this information in the unstructured remittance form                                                 | 1-140                                                                                                                                                                                                                       |
| `remittanceInformationStructured`   | Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle.                                                                                                         | ASPSP           | Description of the payment                                                                                                                                                                                               | O             | 0..1             | String      | If available, the TPP should provide this information in the structured remittance form                                                   | 1-256                                                                                                                                                                                                                       |
| `requestedExecutionDate`            | Date at which the TPP requests the clearing agent to process the payment.                                                                                                                                                             | ASPSP           | This is the date on which the debtor's account is to be debited.                                                                                                                                                         | C             | 0..1             | ISODate     | Date when the transfer is to be executed (It is used for Future Dated payments)                                                           | ISODate, YYYY-MM-DD The `requestedExecutionDate` field and schedule object are both optional and mutually exclusive fields                                                                                                  |
| `schedule`                          | Schedule object is used for standing orders.                                                                                                                                                                                          | ASPSP           | Can be used to initiate a domestic standing orders payment instruction                                                                                                                                                   | C             | 0..1             | Object      | Set of elements used to define the schedule details                                                                                       | The schedule object and `requestedExecutionDate` field are both optional and mutually exclusive fields                                                                                                                      |
| `startDate`                         | The first date of execution for a standing order.                                                                                                                                                                                     | ASPSP           | This element is used to specify the first payment date                                                                                                                                                                   | M             | 1..1             | ISODate     | Payment first execution date                                                                                                              | ISODate, YYYY-MM-DD                                                                                                                                                                                                         |
| `endDate`                           | The last applicable day of execution for a given standing order. If not given, the standing order is considered as endless, until cancelled by PSU.                                                                                   | ASPSP           | This element is used to specify payment last execution date                                                                                                                                                              | O             | 0..1             | ISODate     | Payment last execution date                                                                                                               | ISODate, YYYY-MM-DD                                                                                                                                                                                                         |
| `frequency`                         | Frequency rule for standing orders.                                                                                                                                                                                                   | ASPSP           | This element is used to specify the frequency of a payment                                                                                                                                                               | M             | 1..1             | Enum        | Payment frequency -determines how often a recurring payment will be made.                                                                 | Enum: · `DAIL` - daily · `WEEK` - weekly · `MNTH` - monthly · `QUTR` - quarterly · `SEMI` - semi-annually · `YEAR` - yearly                                                                                                 |
| `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             | 0..1             | String      | Reference information, as assigned by the creditor, to unambiguously refer to the payment transaction. (future use)                       | 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). For specific error codes for this feature see **Feature specific error codes** below.

#### 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**                        |
|-----------------------|--------------------------------------------------------------------------------------------------------------|-----------------|------------------------------------------------------------------------------------------------------------------------|---------------|------------------|----------|---------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
| `_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   | Set of elements used to define the links details                                      | -                                                                       |
| `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                   | M             | 1..1             | URL      | The URL where to redirect the PSU for authentication and authorization of the consent | 1-\*                                                                    |
| `aspspSCAApproach`    | Type of links admitted in this response                                                                      | MC              | This element is used to specify the SCA link types                                                                     | O             | 0..1             | Enum     | Strong Customer Authentication (SCA) Approach                                         | Enum: `REDIRECT`                                                        |
| `consentRequestId`    | Unique identification as assigned by the TPP to uniquely identify the consent request.                       | TPP             | This element could be used for consent request- response tracking                                                      | O             | 0..1             | String   | Request consent identification                                                        | 1-256                                                                   |
| `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                                                                      |
| `additionalData`      | Specifies additional parameters in returned data                                                             | TPP             | This element is used to specify additional parameters returned in response                                             | C             | 0..1             | Object   | Set of 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                                         | C             | 0..1             | String   | Raw consent data received from ASPSP and encoded Base64.                              | Returned only if requestInfo.flags contained 'Return.Raw.Consent' value |

### Redirect parameters {#redirect-parameters}

After the response is received by a TPP, it will have to redirect the PSU to the URI received in `scaRedirect` to complete the authentication with the ASPSP and authorization of the consent.
After completing this process, the TPP will obtain an authorization string on the URI address specified in the `tppRedirectURI` field in the request.

## 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**                                                                                                                                            |
|-------------|-----------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| n/a         | `INACTIVE_URL`  | The value provided for the `tppRedirectURI` parameter is invalid. Only URIs that have been registered with OBIE can be used by TPP. | n/a                   | Typically occurs when the URI has a typo or is incorrectly copied. | Make sure that in order to populate the value of the `tppRedirectURI` field, you are using a URI that was registered with Open Banking Connect API as part of the onboarding details. If you think you should be able to use the specified value, contact the Open Banking Connect API support team. |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "INACTIVE_URL"
            }
        ]
    }
}
```

|                                           **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)" | `INVALID_PAYMENT_AMOUNT` | The value provided for the instructedAmount is less or equal to zero | Return as path to the element that failed the validation | Typically occurs due to submitting user's error. | Ensure that a value greater than 0 is populated as instructedAmount and re-submit the message |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "INVALID_PAYMENT_AMOUNT",
            "Description": "[Path '/payments/instructedAmount/amount'] Numeric instance is lower than the required minimum (minimum: 0, found: -2)",
            "Details": "path[0]=/payments/instructedAmount/amount"
            }
        ]
    }
}
```

|              **Message**               | **Reason Code** |                                                                         **Description**                                                                         |                                                           **Developer Details**                                                            |             **Typical Occurrences**              |                                                 **Next Steps**                                                  |
|----------------------------------------|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| "Execution Date cannot be in the past" | `FORMAT_ERROR`  | The value provided for the `requestedExecutionDate` is in the past. This is an invalid scenario as this field is usually used to request a future dated payment | path\[i\]=\<\\path to the element that failed the validation\>;" where i = 0, 1, 2, and so on, for each element that failed the validation | Typically occurs due to submitting user's error. | Ensure that a value populated in `requestedExecutionDate` is a present or future date and re-submit the message |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "FORMAT_ERROR",
            "Description": "Execution Date cannot be in the past",
            "Details": "path[0]=/payments/requestedExecutionDate"
            }
        ]
    }
}
```

|             **Message**             |         **Reason Code**          |                                                                                        **Description**                                                                                         |                  **Developer Details**                   |               **Typical Occurrences**                |                                             **Next Steps**                                              |
|-------------------------------------|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| "End date is lower than start date" | `STARTDATE_GREATER_THAN_ENDDATE` | The value provided for the startDate is greater than endDate. This is invalid scenario as the selected dates should define the start and end dates of the Settlement Order's payment schedule. | Return as path to the element that failed the validation | Typically occurs because of submitting user's error. | Ensure that a value populated in startDate is lower than or equal the endDate and re-submit the message |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "STARTDATE_GREATER_THAN_ENDDATE",
            "Description": "End date is lower than start date"
            }
        ]
    }
}
```

|                        **Message**                        |        **Reason Code**         |                                                                                         **Description**                                                                                          |                  **Developer Details**                   |                                               **Typical Occurrences**                                               |                                                **Next Steps**                                                |
|-----------------------------------------------------------|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| "startDate and/or endDate cannot be a date from the past" | `INVALID_STARTDATE_OR_ENDDATE` | The value provided for the startDate or endDate is in the past. This is invalid scenario as the selected dates should define the start and end dates of the Settlement Order's payment schedule. | Return as path to the element that failed the validation | Typically occurs because data was delayed and date passes. Especially occurs at next day transition 23:59 to 00:00. | Ensure that a value populated in startDate and endDate are present or future dates and re-submit the message |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "INVALID_STARTDATE_OR_ENDDATE",
            "Description": "startDate and/or endDate 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" | `FORMAT_ERROR`  | The value provided for the startDate or endDate does not comply with standard format, YYYY-MM-DD for example. | Return as path to the element that failed the validation | Typically occurs due to date formatted for MM-DD-YYYY. | Ensure that a value populated in startDate and endDate complies to the following format: YYYY-MM-DD |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "FORMAT_ERROR",
            "Description": "[Path '/payments/schedule/endDate'] String "20202-04-18" is invalid against requested date format(s) yyyy-MM-dd",
            "Details": "path[0]=/payments/schedule/endDate"
            },
            {
            "Source": "OBC",
            "ReasonCode": "FORMAT_ERROR",
            "Description": "[Path '/payments/schedule/startDate'] String "20-03-18" is invalid against requested date format(s) yyyy-MM-dd",
            "Details": "path[0]=/payments/schedule/startDate"
            }
        ]
    }
}
```

|                                **Message**                                 |        **Reason Code**        |                                                                                            **Description**                                                                                             |                  **Developer Details**                   |                                           **Typical Occurrences**                                            |                                                                                                                      **Next Steps**                                                                                                                      |
|----------------------------------------------------------------------------|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| "It is unclear what payment is requested - Future Dated or Standing Order" | `UNCLEAR_PAYMENT_INSTRUCTION` | The request contains both `requestedExecutionDate` and schedule elements populated. This is an invalid scenario, as the former defines a future dated payment, and the later defines a Standing Order. | Return as path to the element that failed the validation | Typically happens when dates are not populated in the schedule section to initiate a Standing Order payment. | Ensure that only one element is populated; that is, either `requestedExecutionDate` in case you want to initiate a Future Dated Payment or populate the necessary fields in the schedule section to initiate a standing order based on defined schedule. |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "UNCLEAR_PAYMENT_INSTRUCTION",
            "Description": "It is unclear what payment is requested - Future Dated or Standing Order"
            }
        ]
    }
}
```

|                  **Message**                   | **Reason Code** |                       **Description**                        |                                                            **Developer Details**                                                            |                                     **Typical Occurrences**                                      |                                                                                                               **Next Steps**                                                                                                                |
|------------------------------------------------|-----------------|--------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| "Method not support by Provider's API profile" | `NOT_FOUND`     | Failed to provide a supported localInstrument in PI Consent. | "path\[i\]=\<\\path to the element that failed the validation\>;" where i = 0, 1, 2, and so on, for each element that failed the validation | Typically occurs when a TPP does not use a valid localinstrument value used by the API standard. | Make sure that you select one of the specified values for localInstrument field based on the specification. Also make sure that you are filling in all the dependent fields according to the specification before re-submitting the message |

**Error example code**

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

|                                          **Message**                                           | **Reason Code** |                                                 **Description**                                                  |                                                            **Developer Details**                                                            |                                                 **Typical Occurrences**                                                  |                                               **Next Steps**                                               |
|------------------------------------------------------------------------------------------------|-----------------|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
| "Conditional field RemittanceInformationUnstructured is expected for selected localInstrument" | `FORMAT_ERROR`  | Failed to provide `RemittanceInformationUnstructured` field in the request to an ASPSP with Polish API standard. | "path\[i\]=\<\\path to the element that failed the validation\>;" where i = 0, 1, 2, and so on, for each element that failed the validation | Typically occurs when TPP does not fill in dependent fields for their API standard, `RemittanceInformationUnstructured`. | Ensure that a value populated in `RemittanceInformationUnstructured` is present and re-submit the message. |

**Error example code**

```json
{
    "Errors": {
        "Error": [
            {
            "Source": "OBC",
            "ReasonCode": "FORMAT_ERROR",
            "Description": "Request details are not aligned with API standard",
            "Details": "path[0]=/payments/remittanceInformationUnstructured"
            }
        ]
    }
}
```

|                                                **Message**                                                | **Reason Code** |                                           **Description**                                            | **Developer Details** |                                                        **Typical Occurrences**                                                        |                                                 **Next Steps**                                                 |
|-----------------------------------------------------------------------------------------------------------|-----------------|------------------------------------------------------------------------------------------------------|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|
| "debtorAccount data need to be provided if debtorAgent, debtorName or debtorAddress details are included" | `FORMAT_ERROR`  | `debtorAccount` was not provided while having `debtorAgent`, `debtorName` or `debtorAddress` details | n/a                   | Typically occurs when TPP does not fill in `debtorAccount` field while including `debtorAgent`, `debtorName` or `debtorAddress` data. | Ensure that `debtorAccount` data is included while having `debtorAgent`, `debtorName` or `debtorAddress` data. |

**Error example code**

```json
{
    "Errors": {
       "Error": [
           {
                "Source": "OBC",
                "ReasonCode": "FORMAT_ERROR",
                "Description": "Optional debtorAccount data need to be provided if debtorAgent, debtorName or debtorAddress details are included",
              "Details": "path[0]=/payments/debtorAccount"
}
]
}
}
```

|              **Message**              |        **Reason Code**        |                                   **Description**                                   | **Developer Details** |                                          **Typical Occurrences**                                          |                                     **Next Steps**                                      |
|---------------------------------------|-------------------------------|-------------------------------------------------------------------------------------|-----------------------|-----------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| Refund capability not enabled for TPP | `REFUND_CAPABILITY _DISABLED` | Refund capability is not enabled for the TPP requesting for refund account details. | n/a                   | Typically occurs when refund capability is not enabled for the TPP requesting for refund account details. | Contact Open Banking Connect API support team to request enabling of Refund capability. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "OBC",
        "ReasonCode": "REFUND_CAPABILITY _DISABLED"
 }
    ]
  }
}
```

|                                 **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\]=\<\\path to the element that failed the validation\>;" 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. | Provide 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**                                                                       |
|-----------------------------------------------------------|-----------------|--------------------------------------|-----------------------|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| You are not allowed to perform this request to this ASPSP | `NOT_ALLOWED`   | Specific payment type is not allowed | N/A                   | You are not allowed to perform this request to this ASPSP | Verify the specifications and ensure that the endpoint and feature is supported by the API Profile returned for the ASPSP. Correct the request if needed. |

**Error example code**

```json
{
    "Errors": {
        "Error": [{
                "Source": "OBC",
                "ReasonCode": "NOT_ALLOWED",
                "Description": "You are not allowed to perform this request to this ASPSP",
                "Details": "path[0]=/payments/requestedExecutionDate"
            }
```

Or

```json
{
    "Errors": {
        "Error": [{
                "Source": "OBC",
                "ReasonCode": "NOT_ALLOWED",
                "Description": "You are not allowed to perform this request to this ASPSP",
                "Details": "path[0]=/payments/schedule"
            }
```

|                 **Message**                 | **Reason Code**  |                             **Description**                              | **Developer Details** |                                         **Typical Occurrences**                                          |                           **Next Steps**                           |
|---------------------------------------------|------------------|--------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `EndToEndIdentification` needs to be unique | `PROVIDER_ERROR` | `EndToEndIdentification` needs to be unique or please resend the request | N/A                   | Occurs when the `EndToEndIdentification` included in the request, was already used in previous requests. | Provide an unique `EndToEndIdentification` and resend the request. |

**Error example code**

```json
{
    "Errors":{
        "Error":[{
            "Source":"OBC",
            "ReasonCode":"PROVIDER_ERROR",
            "Description":"EndToEndIdentification needs to be unique or please resend the request.",
            "Recoverable":false
            }
         ]
        }
    }
```

|                         **Message**                          | **Reason Code** |                        **Description**                        | **Developer Details** |                                                                                                                                 **Typical Occurrences**                                                                                                                                 |                                     **Next Steps**                                     |
|--------------------------------------------------------------|-----------------|---------------------------------------------------------------|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|
| Remainder of division is not zero (amount / decimals factor) | `FORMAT_ERROR`  | A limited number of decimal places is allowed in amount field | N/A                   | Occurs when the number of decimal places in amount value exceeds the limit of 4. Currently validation is applied for SEPA payments submitted to ASPSPs supporting Next Gen PSD2 or STET profiles. In the future, this validation will be extended for other payment types and profiles. | Update the request providing no more than 4 decimals for amount field and resubmit it. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "com.mastercard.mcob.apiserver",
        "ReasonCode": "FORMAT_ERROR",
        "Description": "Remainder of division is not zero (amount / decimals factor)",
        "Details": "path[0]=/payments/instructedAmount/amount"
      }
    ]
  }
}
```

|        **Message**        | **Reason Code**  |                         **Description**                          | **Developer Details** |                                **Typical Occurrences**                                |                                                                                                       **Next Steps**                                                                                                        |
|---------------------------|------------------|------------------------------------------------------------------|-----------------------|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Missing mandatory details | `PROVIDER_ERROR` | Mandatory details required by ASPSPs are missing in the request. | N/A                   | Occurs when specific fields required by some ASPSPs were not included in the request. | Please check the response to Get List of ASPSPs request and information on Mastercard Developer Portal to check the list of mandatory fields required by specific ASPSPs, and resubmit the request with mandatory field(s). |

**Error example code**

```json
{  
  "Errors": {
     "Error": [
      {
      "ReasonCode": " PROVIDER_ERROR ",
      "Description": "Missing mandatory details"    
      }  
    ]
  }
}
```

|                   **Message**                    | **Reason Code**  |                  **Description**                  | **Developer Details** |                    **Typical Occurrences**                    |                       **Next Steps**                        |
|--------------------------------------------------|------------------|---------------------------------------------------|-----------------------|---------------------------------------------------------------|-------------------------------------------------------------|
| Payment execution is scheduled on a bank holiday | `PROVIDER_ERROR` | Payment execution is scheduled on a bank holiday. | N/A                   | Occurs when `requestExecutionDate` was set on a bank holiday. | Please adjust `requestExecutionDate` and resend the request |

**Error example code**

```json
{  
  "Errors": {
     "Error": [
      {
      "ReasonCode": " PROVIDER_ERROR ",
      "Description": "Payment execution is scheduled on a bank holiday"    
      }  
    ]
   }
}
```

|                 **Message**                 | **Reason Code**  |                       **Description**                       | **Developer Details** |                               **Typical Occurrences**                               |                          **Next Steps**                          |
|---------------------------------------------|------------------|-------------------------------------------------------------|-----------------------|-------------------------------------------------------------------------------------|------------------------------------------------------------------|
| "LocalInstrument not supported by the bank" | `PROVIDER_ERROR` | The localInstrument specified is not supported by the bank. | N/A                   | Occurs when specific payment rails (localInstrument) is not supported by the ASPSP. | Resubmit the request specifying another payment LocalInstrument. |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {        "Source": "OBC",
        "ReasonCode": "PROVIDER_ERROR",
        "Description": " LocalInstrument not supported by the bank "      
        }    
     ]  
    }
}
```

