Download OpenAPI specification:Download
IOBWS 3.0 Payments and accounts
The component for Payment Initiation Service (PIS) offers the following services:
This method is used to initiate a payment at the ASPSP.
This method to initiate a payment initiation at the ASPSP can be sent with either a JSON body or an pain.001 body depending on the payment product in the path.
There are the following payment products:
Furthermore the request body depends on the payment-service:
payments: A single payment initiation request.
bulk-payments: A collection of several payment initiation requests.
In case of a pain.001 message there are more than one payments contained in the *pain.001 message.
In case of a JSON there are several JSON payment blocks contained in a joining list.
periodic-payments: Create a standing order initiation resource for recurrent i.e. periodic payments addressable under {paymentId} with all data relevant for the corresponding payment product and the execution of the standing order contained in a JSON body.
This is the first step in the API to initiate the related recurring/periodic payment.
The payment initiation requests are independent from the need of one or multilevel SCA processing, i.e. independent from the number of authorisations needed for the execution of payments.
But the response messages are specific to either one SCA processing or multilevel SCA processing.
For payment initiation with multilevel SCA, this specification requires an explicit start of the authorisation, i.e. links directly associated with SCA processing like 'scaRedirect' or 'scaOAuth' cannot be contained in the response message of a Payment Initation Request for a payment, where multiple authorisations are needed. Also if any data is needed for the next action, like selecting an SCA method is not supported in the response, since all starts of the multiple authorisations are fully equal. In these cases, first an authorisation sub-resource has to be generated following the 'startAuthorisation' link.
X-Request-ID required | string <uuid> ID of the request, unique to the call, as determined by the initiating party. Example: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 |
Digest | string Is contained if and only if the "Signature" element is contained in the header of the request. Example: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A= |
Signature | string A signature of the request by the TPP on application level. This might be mandated by ASPSP. Example: keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
|
TPP-Signature-Certificate | string <byte> The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. |
PSU-ID required | string Client ID of the PSU in the ASPSP client interface. Example: PSU-1234 |
PSU-ID-Type | string Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. In this case, the mean and use are then defined in the ASPSP’s documentation. |
PSU-Corporate-ID | string Might be mandated in the ASPSP's documentation. Only used in a corporate context. |
PSU-Corporate-ID-Type | string Might be mandated in the ASPSP's documentation. Only used in a corporate context. |
Consent-ID required | string (consentId) This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation. |
PSU-IP-Address required | string <ipv4> The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. If not available, the TPP shall use the IP Address used by the TPP when submitting this request. Example: 192.168.8.78 |
TPP-Redirect-Preferred | boolean If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU. Default value True If true customer will be redirected to an Arion authentication website. If false customer will be using an app-to-app redirect approach trough the Arion app. |
TPP-Redirect-URI | string <uri> URI of the TPP, where the transaction flow shall be redirected to after a Redirect. Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field. Remark for Future: This field might be changed to mandatory in the next version of the specification. |
TPP-Nok-Redirect-URI | string <uri> If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP. |
TPP-Explicit-Authorisation-Preferred | boolean If it equals "true", the TPP prefers to start the authorisation process separately, e.g. because of the usage of a signing basket. This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality. If it equals "false" or if the parameter is not used, there is no preference of the TPP. This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, without using a signing basket. |
TPP-Rejection-NoFunds-Preferred | boolean If it equals "true" then the TPP prefers a rejection of the payment initiation in case the ASPSP is providing an integrated confirmation of funds request an the result of this is that not sufficient funds are available. If it equals "false" then the TPP prefers that the ASPSP is dealing with the payment initiation like in the ASPSPs online channel, potentially waiting for a certain time period for funds to arrive to initiate the payment. This parameter might be ignored by the ASPSP. |
TPP-Brand-Logging-Information | string This header might be used by TPPs to inform the ASPSP about the brand used by the TPP towards the PSU. This information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP. This header might be ignored by the ASPSP. |
TPP-Notification-URI | string URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP. For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies: URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant. Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply. |
TPP-Notification-Content-Preferred | string The string has the form status=X1, ..., Xn where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics: SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP. PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP. This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP. |
PSU-IP-Port | string The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. Example: 1234 |
PSU-Accept | string The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. |
PSU-Accept-Charset | string The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. |
PSU-Accept-Encoding | string The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. |
PSU-Accept-Language | string Language that the SCA page will be presented in. Possible options are:
If parameter is empty, the default language will be English. |
PSU-User-Agent | string The forwarded Agent header field of the HTTP request between PSU and TPP, if available. |
PSU-Http-Method | string HTTP method used at the PSU ? TPP interface, if available. Valid values are:
|
PSU-Device-ID | string <uuid> UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device. Example: 99435c7e-ad88-49ec-a2ad-99ddcb1f5555 |
PSU-Geo-Location | stringGEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9... The forwarded Geo Location of the corresponding http request between PSU and TPP if available. Example: GEO:52.506931;13.144558 |
Idempotency-Key | string Idempotent value for the operation being performed. Example: paym-init-001 |
Ocp-Apim-Subscription-Key required | string Azure API management subscription key |
JSON request body for a payment inition request message.
There are the following payment-products supported:
There are the following payment-services supported:
All optional, conditional and predefined but not yet used fields are defined.
Generic Body for a domestic payment initation via JSON.
Payments types:
CREATED
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "endToEndIdentification": "Short description",
- "instructionIdentification": "UID233",
- "debtorId": "0208714669",
- "debtorAccount": {
- "bban": "030026000001"
}, - "instructedAmount": {
- "currency": "ISK",
- "amount": "1235"
}, - "creditorId": "0208714669",
- "creditorAccount": {
- "bban": "030026000005"
}, - "icelandicPurposeCode": "03",
- "remittanceInformationUnstructured": "My description"
}
Response in case of a redirect with an implicitly created authorisation sub-resource
{- "transactionStatus": "RCVD",
- "paymentId": "1234-wertiq-983",
- "_links": {
- "self": {
- "href": "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}, - "status": {
- "href": "/v1/payments/1234-wertiq-983/status"
}, - "scaStatus": {
- "href": "/v1/payments/1234-wertiq-983/authorisations/123auth456"
}
}
}
Returns the content of a payment object
OK
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "batchBookingPreferred": false,
- "paymentInformationId": "75BA1A88418445C0BE88AABFBEEEE230",
- "requestedExecutionDate": "2020-08-01",
- "payments": [
- {
- "endToEndIdentification": "Short description",
- "instructionIdentification": "my_payment_1",
- "resourceId": "my_payment_1_uid",
- "debtorId": "0208714669",
- "debtorAccount": {
- "iban": "IS40100100103307118608"
}, - "instructedAmount": {
- "currency": "ISK",
- "amount": "1235"
}, - "creditorId": "0208714669",
- "creditorAccount": {
- "bban": "030013000001"
}, - "icelandicPurposeCode": "87",
- "remittanceInformationUnstructured": "My description"
}, - {
- "endToEndIdentification": "Short description",
- "instructionIdentification": "my_payment_2",
- "debtorId": "0208714669",
- "debtorAccount": {
- "iban": "IS40100100103307118608"
}, - "instructedAmount": {
- "currency": "ISK",
- "amount": "1235"
}, - "creditorId": "0208714669",
- "creditorAccount": {
- "bban": "045126123456"
}, - "icelandicPurposeCode": "87",
- "remittanceInformationUnstructured": "My description",
- "errors": {
- "tppMessages": [
- {
- "category": "ERROR",
- "code": "DEBTOR_ACCOUNT_NOT_FOUND",
- "text": "Úttektarreikningur ekki til"
}, - {
- "category": "ERROR",
- "code": "FORMAT_ERROR",
- "text": "Eigin villa banka"
}
], - "_links": {
- "self": {
- "href": "/v1/payments/credit-transfers/1234-wertiq-983"
}
}
}
}
], - "transactionStatus": "ACTC"
}
This method initiates the cancellation of a payment. Depending on the payment-service, the payment-product and the ASPSP's implementation, this TPP call might be sufficient to cancel a payment. If an authorisation of the payment cancellation is mandated by the ASPSP, a corresponding hyperlink will be contained in the response message.
Cancels the addressed payment with resource identification paymentId if applicable to the payment-service, payment-product and received in product related timelines (e.g. before end of business day for scheduled payments of the last business day before the scheduled execution day).
The response to this DELETE command will tell the TPP whether the
Received
No Content
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "transactionStatus": "ACTC",
- "_links": {
- "self": {
- "href": "/v1/payments/123456scheduled789"
}, - "status": {
- "href": "/v1/payments/123456scheduled789/status"
}, - "startAuthorisation": {
- "href": "/v1/payments/123456scheduled789/cancellation-authorisations"
}
}
}
Check the transaction status of a payment initiation.
OK
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "transactionStatus": "ACCP"
}
Read a list of all authorisation subresources IDs which have been created.
This function returns an array of hyperlinks to all generated authorisation sub-resources.
OK
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "authorisationIds": [
- "123auth456"
]
}
This method returns the SCA status of a payment initiation's authorisation sub-resource.
OK
Bad Request
Unauthorized
Forbidden
Not found
Method Not Allowed
Not Acceptable
Request Timeout
Conflict
Unsupported Media Type
Too Many Requests
Internal Server Error
Service Unavailable
{- "scaStatus": "psuAuthenticated",
- "psuMessage": "string",
- "trustedBeneficiaryFlag": false
}