Payment authorisation.
POST/api/v1/transactions/:payment-service/:payment-product/:paymentId/authorisations
Start the authorisation process for a payment initiation.
Create an authorisation sub-resource and start the authorisation process. The message might in addition transmit authentication and authorisation related data.
This method is iterated n times for a n times SCA authorisation in a corporate context, each creating an own authorisation sub-endpoint for the corresponding PSU authorising the transaction.
The ASPSP might make the usage of this access method unnecessary in case of only one SCA process needed, since the related authorisation resource might be automatically created by the ASPSP after the submission of the payment data with the first POST payments/{payment-product} call.
The start authorisation process is a process which is needed for creating a new authorisation or cancellation sub-resource.
This applies in the following scenarios:
- The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment initiation response that an explicit start of the authorisation process is needed by the TPP.
The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms:
- 'startAuthorisationWithPsuIdentification'
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
- The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
Request
Path Parameters
Resource identification of the generated payment initiation resource.
Header Parameters
- 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.
- GET
- POST
- PUT
- PATCH
- DELETE
ID of the request, unique to the call, as determined by the initiating party.
Client ID of the PSU in the ASPSP client interface.
Might be mandated in the ASPSP's documentation. It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.
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.
Might be mandated in the ASPSP's documentation. Only used in a corporate context.
Might be mandated in the ASPSP's documentation. Only used in a corporate context.
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 parameter TPP-Decoupled-Preferred and 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.
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.
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.
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.
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:
This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.
Is contained if and only if the "Signature" element is contained in the header of the request.
A signature of the request by the TPP on application level. This might be mandated by ASPSP.
The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.
Possible values: Value must match regular expression \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.
The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.
The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.
The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.
The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.
The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.
The forwarded Agent header field of the HTTP request between PSU and TPP, if available.
Possible values: [GET
, POST
, PUT
, PATCH
, DELETE
]
HTTP method used at the PSU ? TPP interface, if available. Valid values are:
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.
The forwarded Geo Location of the corresponding http request between PSU and TPP if available.
Responses
- 200
- 400
- 401
- 403
- 500
Success
- application/json
- Schema
- Example (from schema)
- Example
Schema
- 1056
- 5768.2
- -1.50
- 5877.78
- 1056
- 5768.2
- -1.50
- 5877.78
- 1056
- 5768.2
- -1.50
- 5877.78
- 1056
- 5768.2
- -1.50
- 5877.78
Array [
]
-
'scaRedirect': In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser.
-
'scaOAuth': In case of a SCA OAuth2 Approach, the ASPSP is transmitting the URI where the configuration of the Authorisation Server can be retrieved.The configuration follows the OAuth 2.0 Authorisation Server Metadata specification.
-
'confirmation': Might be added by the ASPSP if either the "scaRedirect" or "scaOAuth" hyperlink is returned in the same response message. This hyperlink defines the URL to the resource which needs to be updated with
-
a confirmation code as retrieved after the plain redirect authentication process with the ASPSP authentication server or
-
an access token as retrieved by submitting an authorization code after the integrated OAuth based authentication process with the ASPSP authentication server.
-
-
'startAuthorisationWithPsuIdentification': The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU identification data.
-
'startAuthorisationWithPsuAuthentication': The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU authentication data.
- 'startAuthorisationWithEncryptedPsuAuthentication': Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on application layer in uploading.
-
'startAuthorisationWithAuthenticationMethodSelection': The link to the authorisation end-point, where the authorisation sub-resource has to be generated while selecting the authentication method. This link is contained under exactly the same conditions as the data element "scaMethods".
-
'startAuthorisationWithTransactionAuthorisation': The link to the authorisation end-point, where the authorisation sub-resource has to be generated while authorising the transaction e.g. by uploading an OTP received by SMS.
-
'self': The link to the payment initiation resource created by this request. This link can be used to retrieve the resource data.
-
'status': The link to retrieve the transaction status of the payment initiation.
-
'scaStatus': The link to retrieve the scaStatus of the corresponding authorisation sub-resource. This link is only contained, if an authorisation sub-resource has been already created.
Array [
]
Possible values: [accc
, accp
, acsc
, acsp
, actc
, acwc
, rcvd
, pdng
, rjct
, canc
, acfc
, patc
, part
]
The transaction status is filled with codes of the ISO 20022
Possible values: non-empty
PaymentId
transactionFees
object
Base Model for amount.
Possible values: non-empty
, Value must match regular expression [A-Z]{3}
Currency Code.
Possible values: non-empty
, Value must match regular expression -?[0-9]{1,14}(\.[0-9]{1,3})?
The amount given with fractional digits, where fractions must be compliant to the currency definition. Up to 14 significant figures. Negative amounts are signed by minus. The decimal separator is a dot.
Example Valid representations for EUR with up to two decimals are:
currencyConversionFee
object
Base Model for amount.
Possible values: non-empty
, Value must match regular expression [A-Z]{3}
Currency Code.
Possible values: non-empty
, Value must match regular expression -?[0-9]{1,14}(\.[0-9]{1,3})?
The amount given with fractional digits, where fractions must be compliant to the currency definition. Up to 14 significant figures. Negative amounts are signed by minus. The decimal separator is a dot.
Example Valid representations for EUR with up to two decimals are:
estimatedTotalAmount
object
Base Model for amount.
Possible values: non-empty
, Value must match regular expression [A-Z]{3}
Currency Code.
Possible values: non-empty
, Value must match regular expression -?[0-9]{1,14}(\.[0-9]{1,3})?
The amount given with fractional digits, where fractions must be compliant to the currency definition. Up to 14 significant figures. Negative amounts are signed by minus. The decimal separator is a dot.
Example Valid representations for EUR with up to two decimals are:
estimatedInterbankSettlementAmount
object
Base Model for amount.
Possible values: non-empty
, Value must match regular expression [A-Z]{3}
Currency Code.
Possible values: non-empty
, Value must match regular expression -?[0-9]{1,14}(\.[0-9]{1,3})?
The amount given with fractional digits, where fractions must be compliant to the currency definition. Up to 14 significant figures. Negative amounts are signed by minus. The decimal separator is a dot.
Example Valid representations for EUR with up to two decimals are:
If equals 'true', the transaction will involve specific transaction cost as shown by the ASPSP in their public price list or as agreed between ASPSP and PSU. If equals 'false', the transaction will not involve additional specific transaction costs to the PSU unless the fee amount is given specifically in the data elements transactionFees and/or currencyConversionFees. If this data element is not used, there is no information about transaction fees unless the fee amount is given explicitly in the data element transactionFees and/or currencyConversionFees.
scaMethods
object[]
nullable
Authentication object.
This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods.
Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor,
or if an access token is transported.
If this data element is contained, then there is also a hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection' contained in the response body.
These methods shall be presented towards the PSU for selection by the TPP.
Possible values: [smS_OTP
, chiP_OTP
, photO_OTP
, pusH_OTP
, smtP_OTP
]
Type of the authentication method.
Depending on the "authenticationType". This version can be used by differentiating authentication tools used within performing OTP generation in the same authentication type. This version can be referred to in the ASPSP?s documentation.
Possible values: non-empty
and <= 35 characters
An identification provided by the ASPSP for the later identification of the authentication method selection.
This is the name of the authentication method defined by the PSU in the Online Banking frontend of the ASPSP. Alternatively this could be a description provided by the ASPSP like "SMS OTP on phone +49160 xxxxx 28". This name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available.
Detailed information about the SCA method for the PSU.
chosenScaMethod
object
Authentication object.
Possible values: [smS_OTP
, chiP_OTP
, photO_OTP
, pusH_OTP
, smtP_OTP
]
Type of the authentication method.
Depending on the "authenticationType". This version can be used by differentiating authentication tools used within performing OTP generation in the same authentication type. This version can be referred to in the ASPSP?s documentation.
Possible values: non-empty
and <= 35 characters
An identification provided by the ASPSP for the later identification of the authentication method selection.
This is the name of the authentication method defined by the PSU in the Online Banking frontend of the ASPSP. Alternatively this could be a description provided by the ASPSP like "SMS OTP on phone +49160 xxxxx 28". This name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available.
Detailed information about the SCA method for the PSU.
challengeData
object
It is contained in addition to the data element 'chosenScaMethod' if challenge data is needed for SCA.
In rare cases this attribute is also used in the context of the 'startAuthorisationWithPsuAuthentication' link.
PNG data(max. 512 kilobyte) to be displayed to the PSU, Base64 encoding, cp. [RFC4648]. This attribute is used only, when PHOTO_OTP or CHIP_OTP is the selected SCA method.
A collection of strings as challenge data.
A link where the ASPSP will provides the challenge image for the TPP.
The maximal length for the OTP to be typed in by the PSU.
Possible values: [characters
, integer
]
The format type of the OTP to be typed in. The admitted values are "characters" or "integer".
Additional explanation for the PSU to explain e.g. fallback mechanism for the chosen SCA method. The TPP is obliged to show this to the PSU
Possible values: <= 500 characters
Text to be displayed to the PSU.
_links
object
required
A list of hyperlinks to be recognised by the TPP. The actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP when processing the request.
Remark: All links can be relative or full links, to be decided by the ASPSP.
Type of links admitted in this response, (further links might be added for ASPSP defined extensions):
scaRedirect
object
Link to a resource.
href Entry.
scaOAuth
object
Link to a resource.
href Entry.
confirmation
object
Link to a resource.
href Entry.
startAuthorisation
object
Link to a resource.
href Entry.
startAuthorisationWithPsuIdentification
object
Link to a resource.
href Entry.
startAuthorisationWithPsuAuthentication
object
Link to a resource.
href Entry.
startAuthorisationWithAuthenticationMethodSelection
object
Link to a resource.
href Entry.
startAuthorisationWithTransactionAuthorisation
object
Link to a resource.
href Entry.
self
object
Link to a resource.
href Entry.
scaStatus
object
Link to a resource.
href Entry.
status
object
Link to a resource.
href Entry.
tppMessages
object[]
nullable
TPP messages.
Possible values: [error
, warning
]
Category of the TPP message category.
Possible values: [warning
, beneficiarY_WHITELISTING_REQUIRED
]
Message codes for HTTP Codes 201 to a Payment Initiation Request.
Possible values: <= 500 characters
Additional explaining text to the TPP.
{
"transactionStatus": "accc",
"paymentId": "25ba82ce-b975-4f47-a2e9-9cac0ba27c82",
"transactionFees": {
"currency": "EUR",
"amount": "5877.78"
},
"currencyConversionFee": {
"currency": "EUR",
"amount": "5877.78"
},
"estimatedTotalAmount": {
"currency": "EUR",
"amount": "5877.78"
},
"estimatedInterbankSettlementAmount": {
"currency": "EUR",
"amount": "5877.78"
},
"transactionFeeIndicator": true,
"scaMethods": [
{
"authenticationType": "smS_OTP",
"authenticationVersion": "string",
"authenticationMethodId": "string",
"name": "SMS OTP on phone +49160 xxxxx 28",
"explanation": "Detailed information about the SCA method for the PSU."
}
],
"chosenScaMethod": {
"authenticationType": "smS_OTP",
"authenticationVersion": "string",
"authenticationMethodId": "string",
"name": "SMS OTP on phone +49160 xxxxx 28",
"explanation": "Detailed information about the SCA method for the PSU."
},
"challengeData": {
"myProperty": "string",
"data": "string",
"imageLink": "string",
"otpMaxLength": 0,
"otpFormat": "characters",
"additionalInformation": "string"
},
"psuMessage": "string",
"_links": {
"scaRedirect": {
"href": "string"
},
"scaOAuth": {
"href": "string"
},
"confirmation": {
"href": "string"
},
"startAuthorisation": {
"href": "string"
},
"startAuthorisationWithPsuIdentification": {
"href": "string"
},
"startAuthorisationWithPsuAuthentication": {
"href": "string"
},
"startAuthorisationWithAuthenticationMethodSelection": {
"href": "string"
},
"startAuthorisationWithTransactionAuthorisation": {
"href": "string"
},
"self": {
"href": "string"
},
"scaStatus": {
"href": "string"
},
"status": {
"href": "string"
}
},
"tppMessages": [
{
"category": "error",
"code": "warning",
"text": "string"
}
]
}
{
"transactionStatus": "rjct",
"paymentId": "aa26363e-6e6f-4901-a1d0-9cd8eabafeef",
"psuMessage": "Success"
}
Bad Request
- application/json
- Schema
- Example (from schema)
- Example
Schema
Array [
]
result
object
nullable
property name*
string[]
nullable
string
{
"responseCode": 0,
"responseMessage": "string",
"responseType": "string",
"result": {}
}
{
"responseCode": 400,
"responseMessage": "One or more validation errors occurred.",
"responseType": "InvalidRequest",
"result": {
"amount": [
"Amount is required.",
"Amount should be not empty."
],
"currency": [
"Currency it is required.",
"Currency should be not empty.",
"Currency should be 3 characters.",
"Currency is not valid. Currency showld be format ISO 4217:2015."
],
"accountNumber": [
"AccountNumber is required.",
"AccountNumber should be not empty."
],
"accountBranch": [
"AccountBranch is required.",
"AccountBranch should be not empty."
],
"institutionCode": [
"InstitutionCode is required.",
"InstitutionCode should be not empty."
],
"productDescription": [
"ProductDescription is required.",
"InstitutionCode should be not empty."
],
"billNumber": [
"BillNumber is required.",
"BillNumber should be not empty."
],
"customerNumber": [
"CustomerNumber is required.",
"CustomerNumber should be not empty."
],
"mobileNumber": [
"MobileNumber is required.",
"MobileNumber should be not empty."
]
}
}
Unauthorized
Forbidden
Server Error
- application/json
- Schema
- Example (from schema)
- Example
Schema
{
"responseCode": 0,
"responseMessage": "string",
"responseType": "string",
"result": "string"
}
{
"responseCode": 500,
"responseMessage": "One or more errors occurred. (We have identified an unexpected error on our side.)",
"responseType": "InternalServerError",
"result": null
}