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

## Request overview {#request-overview}

The goal of this request is to create a SEPA payment initiation request on the Account Servicing Payment Service Provider (ASPSP) side using a consent authorized by the Payment Service User (PSU). This flow assumes the PSU has already consented to this access and the ASPSP system stores this record of consent or `consentId`. For more information, see section [SEPA Payment Initiation Consent](https://developer.mastercard.com/open-banking-connect/documentation/pisfeatures/sepa-payment-initiation-consent-request/index.md).

### Endpoint details {#endpoint-details}

|     **Endpoints/Resources**     | **Method** |                                                        **API Profiles**                                                        |             **Description**              |
|---------------------------------|------------|--------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
| /payments/sepa-credit-transfers | `POST`     | Polish API, NextGenPSD2, STET, Budapest Bank, Czech Open Banking Standard API Profile, Slovak Banking API Standard API Profile | Initiates SEPA payment on the ASPSP side |

The following sequence diagram shows the flow for initiating a SEPA credit transfer.
Diagram sepa_payment_initiate_credit_transfer

## Request scenario {#request-scenario}


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

### 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                                           | N/A                                       |
| `xRequestId`       | ID of the request, unique to the call, as determined by the TPP                                                                                                                | TPP             | A memorable ID could be used to support in a dispute                                                                                                                                                                         | M             | 1..1             | UUID     | Free field that allows for the addition of information that can be referenced for future use | 36                                        |
| `authorization`    | Authorization data received from associated ASPSP                                                                                                                              | MC              | Authorization data is used to exchange it for access consent                                                                                                                                                                 | M             | 1..1             | String   | The authorization data received after PSU has authorized the consent                         | 1-\*                                      |
| `aspspId`          | ID of a financial institution servicing the Accounts of the PSU                                                                                                                | ASPSP           | Identification of ASPSP                                                                                                                                                                                                      | M             | 1..1             | UUID     | Specifies 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 the 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                                          | N/A                                       |
| `id`               | Merchant identification code to identify the merchant                                                                                                                          | MC              | Unique Merchant identifier per TPP, which could be used for reporting/reconciliation purposes                                                                                                                                | M             | 1..1             | String   | Field is available for TPPs to enable capturing of a merchant ID                             | 1-256                                     |
| `name`             | Merchant name to identify the merchant                                                                                                                                         | MC              | Name of merchant                                                                                                                                                                                                             | M             | 1..1             | String   | Field is available for TPPs to enable capturing of a merchant name                           | 1-256                                     |

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**                                                                                             |
|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|--------------------------------------------------------------------------------------------------|---------------|------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `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                                                                                                                                                                                                                |
| `transfer`              | Specifies transfer information in returned data                                                                                                                                               | TPP             | This element encapsulates all transfer information                                               | M             | 1..1             | Object   | Set of elements used to reference a payment instruction                                                                                                                                                                                                                         | N/A                                                                                                                                                                                                               |
| `paymentId`             | Unique identification as assigned by the ASPSP to uniquely identify the payment resource.                                                                                                     | TPP             | This value should be used to make subsequent payment specific requests                           | M             | 1..1             | String   | Payment identification                                                                                                                                                                                                                                                          | 1-256                                                                                                                                                                                                             |
| `transactionStatus`     | Specifies the status of the payment information group                                                                                                                                         | TPP             | Transaction Status of the payment resource                                                       | M             | 1..1             | String   | Status of the payment                                                                                                                                                                                                                                                           | Example values: · `ACCP` · `ACSC` · `ACSP` · `ACTC` · ACWCC · ACWP · `PDNG` · `RCVD` · `RJCT` · `CANC`                                                                                                            |
| `statusReasonCode`      | Provides detailed information on the status reason.                                                                                                                                           | TPP             | Can only be used in case the status is equal to `RJCT`                                           | O             | 0..1             | String   | Status Reason Code is used to add more information when a generic status code is returned by transaction Status field                                                                                                                                                           | The codes for `statusReasonCode` are defined in ISO20022 - "ExternalStatusReason1Code". The following codes could be returned when `RJCT` status is raised: · `AM04` · `CURR` · `AM12` · `DS24` · `DS02` · `AG08` |
| `originalPaymentId`     | Unique identification as assigned by the ASPSP to uniquely identify the payment resource.                                                                                                     | TPP             | Could be used to support in a dispute                                                            | O             | 0..1             | String   | Payment identification returned by ASPSP                                                                                                                                                                                                                                        | 1-256                                                                                                                                                                                                             |
| `originalPaymentStatus` | Specifies the status of the payment information group. Value returned by ASPSP.                                                                                                               | TPP             | Could be used to support in a dispute                                                            | O             | 0..1             | String   | Status of the payment returned by ASPSP                                                                                                                                                                                                                                         | 1-256                                                                                                                                                                                                             |
| `refundAccount`         | `refundAccount` object is available in the response only when TPP has provided 'RETURN_REFUND_ACCOUNT' flag in consent. It includes PSU's account details.                                    | TPP             | This element encapsulates refund account details                                                 | O             | 0..1             | Object   | Object encapsulating refund account details Attention: This feature for returning the refund account is in development for SEPA and SEPA Instant payments. This feature requires additional enablement for each TPP.                                                            |                                                                                                                                                                                                                   |
| `iban`                  | Account identification number in IBAN format. It can be used on payload-level to mention specific account.                                                                                    | TPP             | Details received in this field can be used for creditor account details in the reversed payment. | O             | 0..1             | String   | Account identification which can be used on payload-level to address specific account Attention: This feature for returning the refund account is in development for SEPA and SEPA Instant payments. This feature requires additional enablement for each TPP.                  |                                                                                                                                                                                                                   |
| `name`                  | Identification of debtor's name associated with the account identification number. It can be used on payload-level to mention specific account.                                               | TPP             | Details received in this field can be used for creditor account details in the reversed payment. | O             | 0..1             | String   | Identification of account owner's name which can be used on payload-level to address specific account. Attention: This feature for returning the refund account is in development for SEPA and SEPA Instant payments. This feature requires additional enablement for each TPP. |                                                                                                                                                                                                                   |
| `consent`               | Specifies consent information in returned data                                                                                                                                                | TPP             | This element encapsulates all consent information                                                | M             | 1..1             | Object   | Set of elements used to define the consent details                                                                                                                                                                                                                              | N/A                                                                                                                                                                                                               |
| `consentId`             | A unique reference to the payment initiation consent stored by the ASPSP. This is required to enable subsequent calls related to the payment (for example, to request payment status details) | ASPSP           | Pass this value as part of the account information requests related to the consent.              | M             | 1..1             | String   | A unique reference to the account information consent stored by the ASPSP. Please note that this is not the original value generated by the ASPSP but a generated 'proxy' value related to that.                                                                                | 1-256                                                                                                                                                                                                             |
| `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                                | M             | 1..1             | String   | Request consent identification                                                                                                                                                                                                                                                  | 1-256                                                                                                                                                                                                             |

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

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

|                                 **Message**                                 | **Reason Code** |                            **Description**                            |                                                         **Developer Details**                                                         |                                                  **Typical Occurrences**                                                  |                                  **Next Steps**                                  |
|-----------------------------------------------------------------------------|-----------------|-----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| Conditional field `psuIPAddress` is expected when `isLivePsuRequest`='true' | `FORMAT_ERROR`  | `IP address` field is mandatory if parameter `isLivePsuRequest`=true. | "path\[i\]=\<\\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** |
|-------------------------------|-------------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|----------------|
| Authorization code is invalid | `INVALID_AUTHORIZATION` | TPP receives error response indicating that authorization code sent is invalid. | Error returned by ASPSP to indicate that the authorization string is invalid. | Initiate the PIS consent request again and make sure the authorization string is correct. |                |

**Error example code**

```json
{
  "Errors": {
    "Error": [
      {
        "ReasonCode": "INVALID_AUTHORIZATION",
        "Description": "Authorization code  is invalid",
        "Recoverable": false
      }
    ]
  }
}
```

|          **Message**          | **Reason Code**  |             **Description**              | **Developer Details** |                    **Typical Occurrences**                    |                                      **Next Steps**                                       |
|-------------------------------|------------------|------------------------------------------|-----------------------|---------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| Authorization code is expired | `PROVIDER_ERROR` | The authorization code sent has expired. |                       | Typically occurs because the authorization code has expired.. | Initiate the AIS consent request again and make sure the authorization string is correct. |

**Error example code**

```json
{
    "Errors": {
         "Error": [
            {
                  "ReasonCode": "PROVIDER_ERROR",
                  "Description": "Authorization code is expired"
             }
       ]
     }
}
```

