Bank Frick PSD2 API
Available Enviroments (Environment URL)
- Production: https://olb.bankfrick.li
- Sandbox: https://olbtest.bankfrick.li
- Contact E-Mail: help@bankfrick.li
The api will be available under the following path:
BaseURL =
Schemes: https
Registration
As TPP you need to be registered for each bank separately. Please send us a short E-Mail with the following information:
- An e-mail-adress to contact you
- Name of your organisation
- Webpage or your organisation
- Roles in your certificate (for example "PSD_PI")
- PSP-ID of your certificate (for example PSDDE-BAFIN-123456 - listed at OID 2.5.4.97)
- trust services that signed your certificate
If you have any questions regarding executed API-calls, please send us a message containing the following additional informations:
- X-Request-ID
- URL (including any identifiers contained in the URL)
- Date and Time of the request
General Description
The Bank Frick PSD2 API - Package XS2A enables banks to comply with the requirements of the PSD2-to implement the directive. It is based on the required account access APIs of the specifications of the EBA and the Berlin Group (NextGenPSD2).
For retrieving account information and initiating payments by third-party providers (TPPs) endpoints are provided:
Account Information Services (AIS)
- Account list of all PSD2 relevant user accounts, optionally with account balance
- Details of the specified account (identifier, type, name, currency, etc.), optionally with account balance
- Account balance for specified user account
- Transactions list for given user account
- Detailed information on specified account activity (optional)
- Consent for one-time account information access
- Consent for recurring account information access (optional)
- Detailed information on a given Consent
- Status information for a given Consent
- Consent deletion for recurring account information access (optional)
Payment Information Services (PIS)
- Initiation of a payment
- Detailed information on specified payment
- Status information as to whether payment order has been accepted
- Initiation of mass payments, scheduled payments, standing orders (incl. analog endpoints for detailed information, Status information) (if supported by the ASPSP)
Confirmation of Funds (PIIS)
- Inquiry as to whether there is sufficient account coverage
Signing Baskets Service (SBS) (if supported by the ASPSP)
- Streamline authorisation process by grouping transactions
Market Order Information Services (MIS) (if supported by the ASPSP)
- Details of specified custody accounts
- Search for financial instruments, optionally with rating information
- Initiation and update of a market order request
- Status information of a market order*
The APIs are
- via pre-defined standard interfaces and integration tools into the environment of the Bank uniformly implemented in the form of REST JSON APIs
- with the defined Consent oriented on the standards of the Berlin Group available in the "embedded" or "decoupled" characteristic
The Bank Frick Banking API provides all the relevant information and configurations of the PSD2-Application ready for the administrators of the bank.
Some General Remarks Related to this version of the OpenAPI Specification
- This API definition is based on the Implementation Guidelines of the Berlin Group PSD2 API. It is not an replacement in any sense. The main specification is (at the moment) always the Implementation Guidelines of the Berlin Group PSD2 API.
- This API definition contains the REST-API for requests from the PISP to the ASPSP.
- This API definition contains the messages for all different approaches defined in the Implementation Guidelines.
- We omit the definition of all standard HTTP header elements (mandatory/optional/conditional) except they are mention in the Implementation Guidelines. Therefore the implementer might add these in his own realisation of a PSD2 complient API.
General Remarks on Data Types
The character set is UTF 8 encoded. This specification is only using the basic data elements "String", "Boolean", "ISODateTime", "ISODate", "UUID" and "Integer" (with a byte length of 32 bits) and ISO based code lists. ASPSPs will accept for strings at least the following character set:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
- / - ? : ( ) . , ' +
CrLf
Space
The characters Cr
and Lf
must never be used as single characters and must only be used together in the sequence CrLf
, that is, LfCr
is not allowed. When the character sequence CrLf
is used in a field format with several lines, it is used to indicate the end of one line of text and the start of the next line of text.
The Berlin Group - A European Standards Initiative - Website
Creative Commons Attribution 4.0 International Public License
Account Information Service (AIS)
The Account Information Service (AIS) offers the following services
- Transaction reports for a given account or card account including balances if applicable.
- Balances of a given account or card account,
- A list of available accounts or card account,
- Account details of a given account or card account or of the list of all accessible accounts or card account relative to a granted consent
GET Accounts
GET /accounts
Request
GET /accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"accounts" : [ {
"resourceId" : "...",
"name" : "...",
"product" : "...",
"cashAccountType" : "SACC",
"status" : "blocked",
"bic" : "...",
"linkedAccounts" : "...",
"usage" : "PRIV",
"details" : "...",
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "closingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "forwardAvailable",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
},
"displayName" : "...",
"ownerName" : "...",
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"resourceId" : "...",
"name" : "...",
"product" : "...",
"cashAccountType" : "CISH",
"status" : "blocked",
"bic" : "...",
"linkedAccounts" : "...",
"usage" : "PRIV",
"details" : "...",
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "authorised",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "forwardAvailable",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
},
"displayName" : "...",
"ownerName" : "...",
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ]
}
Read the identifiers of the available payment account together with booking balance information, depending on the consent granted.
It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed list of accounts depends then on the PSU ID and the stored consent addressed by consentId, respectively the OAuth2 access token.
Returns all identifiers of the accounts, to which an account access has been granted to through the /consents endpoint by the PSU. In addition, relevant information about the accounts and hyperlinks to corresponding account information resources are provided if a related consent has been already granted.
Remark: Note that the /consents endpoint optionally offers to grant an access on all available payment accounts of a PSU. In this case, this endpoint will deliver the information about all available payment accounts of the PSU at this ASPSP.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP ddress field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
withBalance | query | If contained, this function reads the list of accessible payment accounts including the booking balance, if granted by the PSU in the related consent and available by the ASPSP. This parameter might be ignored by the ASPSP. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | AccountList |
GET /accounts/{account-id}
GET /accounts/{account-id}
Request
GET /accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"account" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}
}
Reads details about an account, with balances where required. It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed details of this account depends then on the stored consent addressed by consentId, respectively the OAuth2 access token.
NOTE: The account-id can represent a multicurrency account. In this case the currency code is set to "XXX".
Give detailed information about the addressed account.
Give detailed information about the addressed account together with balance information.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
withBalance | query | If contained, this function reads the list of accessible payment accounts including the booking balance, if granted by the PSU in the related consent and available by the ASPSP. This parameter might be ignored by the ASPSP. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | AccountDetailsResponse |
GET /accounts/{account-id}/balances
GET /accounts/{account-id}/balances
Request
GET /accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"balances" : [ {
"balanceAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balanceType" : "nonInvoiced",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : {
"amount" : 12345.0,
"currency" : "..."
},
"balanceType" : "interimBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"account" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}
}
Reads account data from a given account addressed by "account-id".
Remark: This account-id can be a tokenised identification due to data protection reason since the path information might be logged on intermediary servers within the ASPSP sphere. This account-id then can be retrieved by the "Get account list" call.
The account-id is constant at least throughout the lifecycle of a given consent.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | AccountBalanceResponse |
GET /accounts/{account-id}/transactions
GET /accounts/{account-id}/transactions
Request
GET /accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"account" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"transactions" : {
"booked" : [ {
"transactionId" : "...",
"entryReference" : "...",
"endToEndId" : "...",
"mandateId" : "...",
"checkId" : "...",
"creditorId" : "...",
"bookingDate" : "...",
"valueDate" : "...",
"transactionAmount" : { },
"creditorName" : "Creditor Name",
"creditorAccount" : { },
"creditorAgent" : "...",
"ultimateCreditor" : "Ultimate Creditor",
"debtorName" : "Debtor Name",
"debtorAccount" : { },
"debtorAgent" : "...",
"ultimateDebtor" : "Ultimate Debtor",
"remittanceInformationUnstructured" : "Ref Number Merchant",
"remittanceInformationUnstructuredArray" : [ "...", "..." ],
"remittanceInformationStructured" : "...",
"remittanceInformationStructuredArray" : [ "...", "..." ],
"additionalInformation" : "...",
"additionalInformationStructured" : { },
"purposeCode" : "TAXR",
"bankTransactionCode" : "...",
"proprietaryBankTransactionCode" : "...",
"balanceAfterTransaction" : { },
"_links" : [ { }, { } ]
}, {
"transactionId" : "...",
"entryReference" : "...",
"endToEndId" : "...",
"mandateId" : "...",
"checkId" : "...",
"creditorId" : "...",
"bookingDate" : "...",
"valueDate" : "...",
"transactionAmount" : { },
"creditorName" : "Creditor Name",
"creditorAccount" : { },
"creditorAgent" : "...",
"ultimateCreditor" : "Ultimate Creditor",
"debtorName" : "Debtor Name",
"debtorAccount" : { },
"debtorAgent" : "...",
"ultimateDebtor" : "Ultimate Debtor",
"remittanceInformationUnstructured" : "Ref Number Merchant",
"remittanceInformationUnstructuredArray" : [ "...", "..." ],
"remittanceInformationStructured" : "...",
"remittanceInformationStructuredArray" : [ "...", "..." ],
"additionalInformation" : "...",
"additionalInformationStructured" : { },
"purposeCode" : "LCOL",
"bankTransactionCode" : "...",
"proprietaryBankTransactionCode" : "...",
"balanceAfterTransaction" : { },
"_links" : [ { }, { } ]
} ],
"pending" : [ {
"transactionId" : "...",
"entryReference" : "...",
"endToEndId" : "...",
"mandateId" : "...",
"checkId" : "...",
"creditorId" : "...",
"bookingDate" : "...",
"valueDate" : "...",
"transactionAmount" : { },
"creditorName" : "Creditor Name",
"creditorAccount" : { },
"creditorAgent" : "...",
"ultimateCreditor" : "Ultimate Creditor",
"debtorName" : "Debtor Name",
"debtorAccount" : { },
"debtorAgent" : "...",
"ultimateDebtor" : "Ultimate Debtor",
"remittanceInformationUnstructured" : "Ref Number Merchant",
"remittanceInformationUnstructuredArray" : [ "...", "..." ],
"remittanceInformationStructured" : "...",
"remittanceInformationStructuredArray" : [ "...", "..." ],
"additionalInformation" : "...",
"additionalInformationStructured" : { },
"purposeCode" : "SLPI",
"bankTransactionCode" : "...",
"proprietaryBankTransactionCode" : "...",
"balanceAfterTransaction" : { },
"_links" : [ { }, { } ]
}, {
"transactionId" : "...",
"entryReference" : "...",
"endToEndId" : "...",
"mandateId" : "...",
"checkId" : "...",
"creditorId" : "...",
"bookingDate" : "...",
"valueDate" : "...",
"transactionAmount" : { },
"creditorName" : "Creditor Name",
"creditorAccount" : { },
"creditorAgent" : "...",
"ultimateCreditor" : "Ultimate Creditor",
"debtorName" : "Debtor Name",
"debtorAccount" : { },
"debtorAgent" : "...",
"ultimateDebtor" : "Ultimate Debtor",
"remittanceInformationUnstructured" : "Ref Number Merchant",
"remittanceInformationUnstructuredArray" : [ "...", "..." ],
"remittanceInformationStructured" : "...",
"remittanceInformationStructuredArray" : [ "...", "..." ],
"additionalInformation" : "...",
"additionalInformationStructured" : { },
"purposeCode" : "ELEC",
"bankTransactionCode" : "...",
"proprietaryBankTransactionCode" : "...",
"balanceAfterTransaction" : { },
"_links" : [ { }, { } ]
} ],
"_links" : {
"account" : { },
"first" : { },
"next" : { },
"previous" : { },
"last" : { }
}
},
"balances" : [ {
"balanceAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balanceType" : "expected",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : {
"amount" : 12345.0,
"currency" : "..."
},
"balanceType" : "expected",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : [ {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}, {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
} ]
}
Read transaction reports or transaction lists of a given account dressed by "account-id", depending on the steering parameter "bookingStatus" together with balances.
For a given account, additional parameters are e.g. the attributes "dateFrom" and "dateTo". The ASPSP might add balance information, if transaction lists without balances are not supported.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Accept | header | The TPP can indicate the formats of account reports supported together with a priorisation following the HTTP header definition. The formats supported by this specification are xml/JSON/text . Remark: Content types might be extended in the next version of the specification. This shall enable the TPP to address different camt.05x versions or different MT94x versions in a corporate context. The TPP then could e.g. say: "I prefer MT942, but take MT940 if MT942 is not available." |
|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
bookingStatus | query | Permitted codes are "booked", "pending", "both" and "information". "Booked" shall be supported by the ASPSP. To support the "pending" and "both" feature is optional for the ASPSP, Error code if not supported in the online banking frontend. If supported, "both" means to request transaction reports of transaction of bookingStatus either "pending" or "booked". To support the "information" feature is optional for the ASPSP. Currently the booking status "information" only covers standing orders. Error code if not supported. | required |
dateFrom | query | Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta access is required.For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. | |
dateTo | query | End date (inclusive the data dateTo) of the transaction list, default is "now" if not given. Might be ignored if a delta function is used. For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. | |
deltaList | query | This data attribute is indicating that the AISP is in favor to get all transactions after the last report access for this PSU on the addressed account. This is another implementation of a delta access-report. This delta indicator might be rejected by the ASPSP if this function is not supported. Optional if supported by API provider. | boolean |
entryReferenceFrom | query | This data attribute is indicating that the AISP is in favor to get all transactions after the transaction with identification entryReferenceFrom alternatively to the above defined period. This is a implementation of a delta access. If this data element is contained, the entries "dateFrom" and "dateTo" might be ignored by the ASPSP if a delta report is supported. Optional if supported by API provider. | |
withBalance | query | If contained, this function reads the list of accessible payment accounts including the booking balance, if granted by the PSU in the related consent and available by the ASPSP. This parameter might be ignored by the ASPSP. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | AccountTransactionsResponse | |
application/xml | object | |
text/plain | object |
GET /accounts/{account-id}/transactions/{transactionId}
GET /accounts/{account-id}/transactions/{transactionId}
Request
GET /accounts/{account-id}/transactions/{transactionId}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /accounts/{account-id}/transactions/{transactionId}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionId" : "...",
"entryReference" : "...",
"endToEndId" : "...",
"mandateId" : "...",
"checkId" : "...",
"creditorId" : "...",
"bookingDate" : "...",
"valueDate" : "...",
"transactionAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"creditorName" : "Creditor Name",
"creditorAccount" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"creditorAgent" : "...",
"ultimateCreditor" : "Ultimate Creditor",
"debtorName" : "Debtor Name",
"debtorAccount" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"debtorAgent" : "...",
"ultimateDebtor" : "Ultimate Debtor",
"remittanceInformationUnstructured" : "Ref Number Merchant",
"remittanceInformationUnstructuredArray" : [ "...", "..." ],
"remittanceInformationStructured" : "...",
"remittanceInformationStructuredArray" : [ "...", "..." ],
"additionalInformation" : "...",
"additionalInformationStructured" : {
"standingOrderDetails" : {
"startDate" : "...",
"frequencyCode" : "MonthlyVariable",
"endDate" : "...",
"executionRule" : "preceding",
"withinAMonthFlag" : true,
"monthsOfExecution" : [ { }, { } ],
"multiplicator" : 12345,
"dayOfExecution" : "13",
"LimitAamount" : { },
"limitAamount" : { }
}
},
"purposeCode" : "IPEA",
"bankTransactionCode" : "...",
"proprietaryBankTransactionCode" : "...",
"balanceAfterTransaction" : {
"balanceAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balanceType" : "interimBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
},
"_links" : [ {
"transactionDetails" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}, {
"transactionDetails" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
} ]
}
Reads transaction details from a given transaction addressed by “transactionId” on a given account addressed by "account-id". This call is only available on transactions as reported in a JSON format.
Remark: Please note that the PATH might be already given in detail by the corresponding entry of the response of the "Read Transaction List" call within the _links subfield.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
transactionId | path | This identification is given by the attribute transactionId of the corresponding entry of a transaction list. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | TransactionDetails |
GET /card-accounts
GET /card-accounts
Request
GET /card-accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /card-accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"cardAccounts" : [ {
"resourceId" : "...",
"maskedPan" : "123456xxxxxx1234",
"currency" : "EUR",
"ownerName" : "John Doe",
"name" : "...",
"displayName" : "...",
"product" : "...",
"status" : "deleted",
"usage" : "ORGA",
"details" : "...",
"creditLimit" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "closingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "interimBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
}
}, {
"resourceId" : "...",
"maskedPan" : "...",
"currency" : "...",
"ownerName" : "...",
"name" : "...",
"displayName" : "...",
"product" : "...",
"status" : "blocked",
"usage" : "PRIV",
"details" : "...",
"creditLimit" : {
"amount" : 12345.0,
"currency" : "..."
},
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "forwardAvailable",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "nonInvoiced",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
}
} ]
}
Reads a list of card accounts with additional information, e.g. balance information. It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed list of card accounts depends then on the PSU ID and the stored consent addressed by consentId, respectively the OAuth2 access token.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CardAccountList |
GET /card-accounts/{account-id}
GET /card-accounts/{account-id}
Request
GET /card-accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /card-accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"cardAccount" : {
"resourceId" : "...",
"maskedPan" : "123456xxxxxx1234",
"currency" : "EUR",
"ownerName" : "John Doe",
"name" : "...",
"displayName" : "...",
"product" : "...",
"status" : "deleted",
"usage" : "ORGA",
"details" : "...",
"creditLimit" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "openingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "expected",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
}
}
}
Reads details about a card account. It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed details of this account depends then on the stored consent addressed by consentId, respectively the OAuth2 access token.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CardAccountDetailsResponse |
GET /card-accounts/{account-id}/balances
GET /card-accounts/{account-id}/balances
Request
GET /card-accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /card-accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"balances" : [ {
"balanceAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balanceType" : "openingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : {
"amount" : 12345.0,
"currency" : "..."
},
"balanceType" : "authorised",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"cardAccount" : {
"resourceId" : "...",
"maskedPan" : "123456xxxxxx1234",
"currency" : "EUR",
"ownerName" : "John Doe",
"name" : "...",
"displayName" : "...",
"product" : "...",
"status" : "deleted",
"usage" : "ORGA",
"details" : "...",
"creditLimit" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balances" : [ {
"balanceAmount" : { },
"balanceType" : "openingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : { },
"balanceType" : "nonInvoiced",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : {
"balances" : { },
"transactions" : { }
}
}
}
Reads balance data from a given card account addressed by "account-id".
Remark: This account-id can be a tokenised identification due to data protection reason since the path information might be logged on intermediary servers within the ASPSP sphere. This account-id then can be retrieved by the "Get card account list" call.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CardAccountBalanceResponse |
GET /card-accounts/{account-id}/transactions
GET /card-accounts/{account-id}/transactions
Request
GET /card-accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /card-accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"cardAccount" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"cardTransactions" : {
"booked" : [ {
"cardTransactionId" : "...",
"terminalId" : "...",
"transactionDate" : "...",
"acceptorTransactionDateTime" : "...",
"bookingDate" : "...",
"transactionAmount" : { },
"currencyExchange" : [ { }, { } ],
"originalAmount" : { },
"markupFee" : { },
"markupFeePercentage" : "...",
"cardAcceptorId" : "...",
"cardAcceptorAddress" : { },
"cardAcceptorPhone" : "...",
"merchantCategoryCode" : "...",
"maskedPAN" : "123456xxxxxx1234",
"transactionDetails" : "...",
"invoiced" : true,
"proprietaryBankTransactionCode" : "..."
}, {
"cardTransactionId" : "...",
"terminalId" : "...",
"transactionDate" : "...",
"acceptorTransactionDateTime" : "...",
"bookingDate" : "...",
"transactionAmount" : { },
"currencyExchange" : [ { }, { } ],
"originalAmount" : { },
"markupFee" : { },
"markupFeePercentage" : "...",
"cardAcceptorId" : "...",
"cardAcceptorAddress" : { },
"cardAcceptorPhone" : "...",
"merchantCategoryCode" : "...",
"maskedPAN" : "...",
"transactionDetails" : "...",
"invoiced" : true,
"proprietaryBankTransactionCode" : "..."
} ],
"pending" : [ {
"cardTransactionId" : "...",
"terminalId" : "...",
"transactionDate" : "...",
"acceptorTransactionDateTime" : "...",
"bookingDate" : "...",
"transactionAmount" : { },
"currencyExchange" : [ { }, { } ],
"originalAmount" : { },
"markupFee" : { },
"markupFeePercentage" : "...",
"cardAcceptorId" : "...",
"cardAcceptorAddress" : { },
"cardAcceptorPhone" : "...",
"merchantCategoryCode" : "...",
"maskedPAN" : "123456xxxxxx1234",
"transactionDetails" : "...",
"invoiced" : true,
"proprietaryBankTransactionCode" : "..."
}, {
"cardTransactionId" : "...",
"terminalId" : "...",
"transactionDate" : "...",
"acceptorTransactionDateTime" : "...",
"bookingDate" : "...",
"transactionAmount" : { },
"currencyExchange" : [ { }, { } ],
"originalAmount" : { },
"markupFee" : { },
"markupFeePercentage" : "...",
"cardAcceptorId" : "...",
"cardAcceptorAddress" : { },
"cardAcceptorPhone" : "...",
"merchantCategoryCode" : "...",
"maskedPAN" : "...",
"transactionDetails" : "...",
"invoiced" : true,
"proprietaryBankTransactionCode" : "..."
} ],
"_links" : {
"account" : { },
"first" : { },
"next" : { },
"previous" : { },
"last" : { }
}
},
"balances" : [ {
"balanceAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"balanceType" : "authorised",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
}, {
"balanceAmount" : {
"amount" : 12345.0,
"currency" : "..."
},
"balanceType" : "openingBooked",
"creditLimitIncluded" : true,
"lastChangeDateTime" : 12345,
"referenceDate" : "...",
"lastCommittedTransaction" : "..."
} ],
"_links" : [ {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}, {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
} ]
}
Reads account data from a given card account addressed by "account-id".
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
bookingStatus | query | Permitted codes are "booked", "pending", "both" and "information". "Booked" shall be supported by the ASPSP. To support the "pending" and "both" feature is optional for the ASPSP, Error code if not supported in the online banking frontend. If supported, "both" means to request transaction reports of transaction of bookingStatus either "pending" or "booked". To support the "information" feature is optional for the ASPSP. Currently the booking status "information" only covers standing orders. Error code if not supported. | required |
dateFrom | query | Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta access is required. For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. | |
dateTo | query | End date (inclusive the data dateTo) of the transaction list, default is "now" if not given. Might be ignored if a delta function is used. For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. | |
deltaList | query | This data attribute is indicating that the AISP is in favor to get all transactions after the last report access for this PSU on the addressed account. This is another implementation of a delta access-report. This delta indicator might be rejected by the ASPSP if this function is not supported. Optional if supported by API provider. | boolean |
entryReferenceFrom | query | This data attribute is indicating that the AISP is in favor to get all transactions after the transaction with identification entryReferenceFrom alternatively to the above defined period. This is a implementation of a delta access. If this data element is contained, the entries "dateFrom" and "dateTo" might be ignored by the ASPSP if a delta report is supported. Optional if supported by API provider. | |
withBalance | query | If contained, this function reads the list of accessible payment accounts including the booking balance, if granted by the PSU in the related consent and available by the ASPSP. This parameter might be ignored by the ASPSP. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CardAccountTransactionsResponse |
POST /consents
POST /consents
Request
POST /consents
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"combinedServiceIndicator" : true,
"access" : {
"accounts" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"balances" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"transactions" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"additionalInformation" : {
"ownerName" : [ { }, { } ],
"trustedBeneficiaries" : [ { }, { } ]
},
"availableAccounts" : "allAccountsWithOwnerName",
"availableAccountsWithBalance" : "allAccountsWithOwnerName",
"allPsd2" : "allAccounts",
"restrictedTo" : [ "CACC", "ONDP" ],
"instruments" : "both"
},
"recurringIndicator" : true,
"validUntil" : "...",
"frequencyPerDay" : 12345
}
POST /consents
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"combinedServiceIndicator" : true,
"access" : {
"accounts" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"balances" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"transactions" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"additionalInformation" : {
"ownerName" : [ { }, { } ],
"trustedBeneficiaries" : [ { }, { } ]
},
"availableAccounts" : "allAccountsWithOwnerName",
"availableAccountsWithBalance" : "allAccountsWithOwnerName",
"allPsd2" : "allAccounts",
"restrictedTo" : [ "CACC", "ONDP" ],
"instruments" : "both"
},
"recurringIndicator" : true,
"validUntil" : "...",
"frequencyPerDay" : 12345
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
ASPSP-Notification-Support: ...
X-Request-ID: ...
ASPSP-SCA-Approach: ...
ASPSP-Notification-Content: ...
Location: ...
{
"consentStatus" : "valid",
"consentId" : "...",
"scaMethods" : [ {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"self" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This method create a consent resource, defining access rights to dedicated accounts of a given PSU-ID. These accounts are addressed explicitly in the method as parameters as a core function.
Side Effects When this Consent Request is a request where the "recurringIndicator" equals "true", and if it exists already a former consent for recurring access on account information for the addressed PSU, then the former consent automatically expires as soon as the new consent request is authorized by the PSU.
Optional Extension: As an option, an ASPSP might optionally accept a specific access right on the access on all psd2 related services for all available accounts.
As another option an ASPSP might optionally also accept a command, where only access rights are inserted without mentioning the addressed account. The relation to accounts is then handled afterwards between PSU and ASPSP. This option is not supported for the Embedded SCA Approach. As a last option, an ASPSP might in addition accept a command with access rights
- to see the list of available payment accounts or
- to see the list of available payment accounts with balances.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Corporate-ID | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Corporate-ID-Type | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | required |
PSU-ID-Type | header | Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
TPP-Brand-Logging-Information | header | 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-Explicit-Authorisation-Preferred | header | 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. | boolean |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ConsentCreationResult |
Response Headers
name | description |
---|---|
ASPSP-Notification-Support | true if the ASPSP supports resource status notification services. False if the ASPSP supports resource status notification in general, but not for the current request. Not used, if resource status notification services are generally not supported by the ASPSP. Shall be supported if the ASPSP supports resource status notification services. |
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
ASPSP-SCA-Approach | Selected SCA-Approach in case if it is already fixed. |
ASPSP-Notification-Content | 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 following semantics SCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource. PROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource LAST - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource. This field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request. |
Location | Location of the created resource. |
DELETE /consents/{consentId}
DELETE /consents/{consentId}
Request
DELETE /consents/{consentId}
Content-Type: */*
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
DELETE /consents/{consentId}
Content-Type: */*
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
The TPP can delete an account information consent object if needed.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
GET /consents/{consentId}
GET /consents/{consentId}
Request
GET /consents/{consentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /consents/{consentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"consentStatus" : "valid",
"lastActionDate" : "...",
"_links" : {
"account" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"access" : {
"accounts" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"balances" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"transactions" : [ {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
}, {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
} ],
"additionalInformation" : {
"ownerName" : [ { }, { } ],
"trustedBeneficiaries" : [ { }, { } ]
},
"availableAccounts" : "allAccounts",
"availableAccountsWithBalance" : "allAccounts",
"allPsd2" : "allAccounts",
"restrictedTo" : [ "CHAR", "TAXE" ],
"instruments" : "both"
},
"recurringIndicator" : true,
"validUntil" : "...",
"frequencyPerDay" : 12345
}
Returns the content of an account information consent object. This is returning the data for the TPP especially in cases, where the consent was directly managed between ASPSP and PSU e.g. in a re-direct SCA Approach.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Consent |
GET /consents/{consentId}/authorisations
GET /consents/{consentId}/authorisations
Request
GET /consents/{consentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /consents/{consentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
Return a list of all authorisation subresources IDs which have been created. This function returns an array of hyperlinks to all generated authorisation sub-resources.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /consents/{consentId}/authorisations
POST /consents/{consentId}/authorisations
Request
POST /consents/{consentId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
POST /consents/{consentId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationId" : "123auth456",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "received",
"scaMethods" : [ {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
Create an authorisation sub-resource and start the authorisation process of a consent. 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 consent.
The ASPSP might make the usage of this access method unnecessary, since the related authorisation resource will be automatically created by the ASPSP after the submission of the consent data with the first POST consents 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 an '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.
- 'startAuthorisationWithPsuIdentfication'
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an '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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
GET /consents/{consentId}/authorisations/{authorisationId}
GET /consents/{consentId}/authorisations/{authorisationId}
Request
GET /consents/{consentId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /consents/{consentId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "finalised",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a consent initiation's authorisation sub-resource. For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the consent and updates the consent status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /consents/{consentId}/authorisations/{authorisationId}
PUT /consents/{consentId}/authorisations/{authorisationId}
Request
PUT /consents/{consentId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /consents/{consentId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "received",
"scaMethods" : [ {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This methods updates PSU data on the authorisation resource if needed. It may authorise a consent within the Embedded SCA Approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
There are several possible Update PSU Data requests in the context of payment initiation services needed, which depends on the SCA approach:
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | AuthorisationUpdate |
GET /consents/{consentId}/status
GET /consents/{consentId}/status
Request
GET /consents/{consentId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /consents/{consentId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"consentStatus" : "terminatedByTpp",
"psuMessage" : "..."
}
Read the status of an account information consent resource.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
consentId | path | ID of the corresponding consent object as returned by an Account Information Consent Request. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ConsentStatusResponse |
GET /custody-accounts
GET /custody-accounts
Request
GET /custody-accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /custody-accounts
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"custodyAccounts" : [ {
"resourceId" : "...",
"ownerName" : "John Doe",
"name" : "...",
"product" : "...",
"status" : "blocked",
"usage" : "ORGA",
"details" : "...",
"_links" : {
"balances" : { },
"transactions" : { }
},
"bban" : "BARC12345612345678"
}, {
"resourceId" : "...",
"ownerName" : "...",
"name" : "...",
"product" : "...",
"status" : "enabled",
"usage" : "PRIV",
"details" : "...",
"_links" : {
"balances" : { },
"transactions" : { }
},
"bban" : "..."
} ]
}
Reads a list of custody accounts with additional information, e.g. rating information. It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed list of custody accounts depends then on the PSU ID and the stored consent addressed by consentId, respectively the OAuth2 access token.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccountList |
GET /custody-accounts/{account-id}
GET /custody-accounts/{account-id}
Request
GET /custody-accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /custody-accounts/{account-id}
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"custodyAccount" : {
"bban" : "BARC12345612345678"
}
}
Reads details about a custody account. It is assumed that a consent of the PSU to this access is already given and stored on the ASPSP system. The addressed details of this account depends then on the stored consent addressed by consentId, respectively the OAuth2 access token.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccountDetailsResponse |
GET /custody-accounts/{account-id}/balances
GET /custody-accounts/{account-id}/balances
Request
GET /custody-accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /custody-accounts/{account-id}/balances
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"balances" : [ {
"name" : "...",
"valorCurrency" : "USD",
"currency" : "CHF",
"currentPrice" : 12345.0,
"quantity" : 12345.0,
"marketValutation" : 12345.0,
"type" : "STRUCTURED_PRODUCTS",
"category" : "250 - FONDS WERTPAPIERE",
"courseDate" : "...",
"acquirationPrice" : 12345.0,
"averagePrice" : 12345.0,
"winLoss" : 12345.0,
"accuredInterest" : 12345.0,
"multiplier" : 12345.0,
"expireDate" : "...",
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}, {
"name" : "...",
"valorCurrency" : "...",
"currency" : "...",
"currentPrice" : 12345.0,
"quantity" : 12345.0,
"marketValutation" : 12345.0,
"type" : "STOCKS",
"category" : "...",
"courseDate" : "...",
"acquirationPrice" : 12345.0,
"averagePrice" : 12345.0,
"winLoss" : 12345.0,
"accuredInterest" : 12345.0,
"multiplier" : 12345.0,
"expireDate" : "...",
"nsin" : "...",
"suffix" : "...",
"isin" : "..."
} ],
"custodyAccount" : {
"bban" : "BARC12345612345678"
}
}
Reads custody account positions data from a given custody account addressed by "account-id".
Remark: This account-id can be a tokenised identification due to data protection reason since the path information might be logged on intermediary servers within the ASPSP sphere. This account-id then can be retrieved by the "Get custody account list" call.
The account-id is constant at least throughout the lifecycle of a given consent.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccountBalanceResponse |
GET /custody-accounts/{account-id}/transactions
GET /custody-accounts/{account-id}/transactions
Request
GET /custody-accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /custody-accounts/{account-id}/transactions
Content-Type: */*
Accept: application/json
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"custodyAccount" : {
"bban" : "BARC12345612345678"
},
"custodyAccountTransactions" : {
"booked" : [ {
"referenceId" : "...",
"orderType" : "VCN - REDEMPTION",
"tradingType" : "BUY",
"name" : "Bitcoins USD",
"quantity" : 12345.0,
"rate" : 12345.0,
"transactionDate" : "...",
"courtage" : 12345.0,
"transactionFees" : 12345.0,
"exchange" : "...",
"currency" : "...",
"totalAmount" : 12345.0,
"customerCurrency" : "...",
"netAmountCustomerCurrency" : 12345.0,
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}, {
"referenceId" : "...",
"orderType" : "...",
"tradingType" : "SELL",
"name" : "...",
"quantity" : 12345.0,
"rate" : 12345.0,
"transactionDate" : "...",
"courtage" : 12345.0,
"transactionFees" : 12345.0,
"exchange" : "...",
"currency" : "...",
"totalAmount" : 12345.0,
"customerCurrency" : "...",
"netAmountCustomerCurrency" : 12345.0,
"nsin" : "...",
"suffix" : "...",
"isin" : "..."
} ],
"pending" : [ {
"referenceId" : "...",
"orderType" : "VCN - REDEMPTION",
"tradingType" : "SELL",
"name" : "Bitcoins USD",
"quantity" : 12345.0,
"rate" : 12345.0,
"transactionDate" : "...",
"courtage" : 12345.0,
"transactionFees" : 12345.0,
"exchange" : "...",
"currency" : "...",
"totalAmount" : 12345.0,
"customerCurrency" : "...",
"netAmountCustomerCurrency" : 12345.0,
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}, {
"referenceId" : "...",
"orderType" : "...",
"tradingType" : "SELL",
"name" : "...",
"quantity" : 12345.0,
"rate" : 12345.0,
"transactionDate" : "...",
"courtage" : 12345.0,
"transactionFees" : 12345.0,
"exchange" : "...",
"currency" : "...",
"totalAmount" : 12345.0,
"customerCurrency" : "...",
"netAmountCustomerCurrency" : 12345.0,
"nsin" : "...",
"suffix" : "...",
"isin" : "..."
} ],
"_links" : {
"account" : { },
"first" : { },
"next" : { },
"previous" : { },
"last" : { }
}
},
"_links" : [ {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}, {
"download" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
} ]
}
Reads account data from a given custody account addressed by "account-id".
Request Parameters
name | type | description | constraints |
---|---|---|---|
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
account-id | path | This identification is denoting the addressed account. The account-id is retrieved by using a "Read Account List" call. The account-id is the "id" attribute of the account structure. Its value is constant at least throughout the lifecycle of a given consent. | required |
bookingStatus | query | Permitted codes are "booked", "pending" and "both". "Booked" shall be supported by the ASPSP. To support the "pending" and "both" feature is optional for the ASPSP, Error code if not supported in the online banking frontend. If supported, "both" means to request transaction reports of transaction of bookingStatus either "pending" or "booked". | required |
dateFrom | query | Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta access is required. For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. | required |
dateTo | query | End date (inclusive the data dateTo) of the transaction list, default is "now" if not given. Might be ignored if a delta function is used. For booked transactions, the relevant date is the booking date. For pending transactions, the relevant date is the entry date, which may not be transparent neither in this API nor other channels of the ASPSP. |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | CustodyAccountTransactionsResponse |
GET /instruments
GET /instruments
Request
GET /instruments
Content-Type: */*
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /instruments
Content-Type: */*
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"denomination" : 12345.0,
"type" : "CRYPTO_CURRENCIES",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "...",
"price" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"percentPrice" : false
},
"issuingDate" : "...",
"expirationDate" : "...",
"capitalization" : 12345.0,
"interestRate" : 12345.0,
"nominal" : 12345.0,
"couponFrequency" : 12345,
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}
Lookup a financial instrument.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Authorization | header | This field might be used in case where a consent was agreed between ASPSP and PSU through an OAuth2 based protocol, facilitated by the TPP. | |
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
isin | query | The isin of the financial instrument | max size: 12, min size: 12 |
suffix | query | In case the valoren number is not unique (e.g. securities exists for different currencies) the suffix must be given to identify the instrument correctly. Defaults to 000. | max size: 3, min size: 3 |
valoren | query | The valoren number of the financial instrument. | max size: 12, min size: 0 |
withRating | query | If contained, this function reads the current valutation of the financial instruments and returns it if available. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Instrument |
POST /instruments/search
POST /instruments/search
Request
POST /instruments/search
Content-Type: application/json
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"input" : "Bitcoin",
"type" : "CRYPTO_CURRENCIES"
}
POST /instruments/search
Content-Type: application/json
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"input" : "Bitcoin",
"type" : "CRYPTO_CURRENCIES"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"instruments" : [ {
"symbol" : "AAPL",
"name" : "APPLE INC",
"additionalName" : "APPLE INC",
"currency" : "USD",
"domicile" : "US",
"denomination" : 12345.0,
"type" : "STOCKS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "...",
"price" : { },
"percentPrice" : false
},
"issuingDate" : "...",
"expirationDate" : "...",
"capitalization" : 12345.0,
"interestRate" : 12345.0,
"nominal" : 12345.0,
"couponFrequency" : 12345,
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}, {
"symbol" : "...",
"name" : "...",
"additionalName" : "...",
"currency" : "...",
"domicile" : "...",
"denomination" : 12345.0,
"type" : "STOCKS",
"canTrade" : true,
"recentPrice" : {
"dateTime" : "...",
"price" : { },
"percentPrice" : false
},
"issuingDate" : "...",
"expirationDate" : "...",
"capitalization" : 12345.0,
"interestRate" : 12345.0,
"nominal" : 12345.0,
"couponFrequency" : 12345,
"nsin" : "...",
"suffix" : "...",
"isin" : "..."
} ]
}
Requires consent access to 'instruments'='searchInstruments' permission.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Authorization | header | This field might be used in case where a consent was agreed between ASPSP and PSU through an OAuth2 based protocol, facilitated by the TPP. | |
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | required |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. | |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
withRating | query | If contained, this function reads the current valutation of the financial instruments and returns it if available. | boolean |
Response Codes
code | condition |
---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. |
408 | The server is still working correctly, but an individual request has timed out. |
415 | The TPP has supplied a media type which the ASPSP does not support. |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. |
500 | Internal server error occurred. |
501 | Indicates that the ASPSP does not support the requested resource. |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | InstrumentsSearchRequest |
Market Order Initiation Service (MIS)
The Description for Market Order Initiation Service (MIS) offers the following services:
- Initiation and update of a market order request
- Status information of a market order
POST /market-orders
POST /market-orders
Request
POST /market-orders
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"tradingType" : "BUY",
"totalQuantity" : 12345.0,
"limit" : 12345.0,
"validUntil" : "...",
"custodyAccounts" : [ {
"settlementAccount" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"quantity" : 12345.0,
"bban" : "BARC12345612345678"
}, {
"settlementAccount" : {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
},
"quantity" : 12345.0,
"bban" : "..."
} ],
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}
POST /market-orders
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"tradingType" : "BUY",
"totalQuantity" : 12345.0,
"limit" : 12345.0,
"validUntil" : "...",
"custodyAccounts" : [ {
"settlementAccount" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"quantity" : 12345.0,
"bban" : "BARC12345612345678"
}, {
"settlementAccount" : {
"iban" : "...",
"bban" : "...",
"pan" : "...",
"maskedPan" : "...",
"msisdn" : "...",
"currency" : "..."
},
"quantity" : 12345.0,
"bban" : "..."
} ],
"nsin" : "908440",
"suffix" : "000",
"isin" : "US0378331005"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
ASPSP-Notification-Support: ...
X-Request-ID: ...
Trading-Hours: ...
ASPSP-SCA-Approach: ...
ASPSP-Notification-Content: ...
MiFID-Confirmation-Required: ...
Location: ...
{
"transactionStatus" : "ACCP",
"marketorderId" : "...",
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"scaMethods" : [ {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithTransactionAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"self" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"psuMessage" : "...",
"tppMessages" : [ {
"category" : "ERROR",
"text" : "...",
"path" : "...",
"code" : { }
}, {
"category" : "ERROR",
"text" : "...",
"path" : "...",
"code" : { }
} ]
}
This method is used to initiate a market order at the ASPSP.
This is the first step in the API to initiate the related markt order.
Single and multilevel SCA Processes
The Market Order Initiation Requests are independent from the need of one ore 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 market order 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 Market Order Initation Request for a market order, 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.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Corporate-ID | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Corporate-ID-Type | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | required |
PSU-ID-Type | header | Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Brand-Logging-Information | header | 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-Explicit-Authorisation-Preferred | header | 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. | boolean |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
TPP-Rejection-NoFunds-Preferred | path | 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. | boolean |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Marketorder |
Response Headers
name | description |
---|---|
ASPSP-Notification-Support | true if the ASPSP supports resource status notification services. false if the ASPSP supports resource status notification in general, but not for the current request. Not used, if resource status notification services are generally not supported by the ASPSP. Shall be supported if the ASPSP supports resource status notification services. |
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Trading-Hours | In case the order is made outside of the regular trading hours, this field contains information about the ASPSP trading hours. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
ASPSP-Notification-Content | 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 following semantics: SCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource. PROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource. LAST: - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource. This field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request. |
MiFID-Confirmation-Required | In case the order requires mifid confirmation, the header contains a list of customer depots that require MiFID confirmation for the order within the start authorization process. The string has the form {bban}=(RISK_CLASSIFICATION/KNOWLEDGE) comma separated for each custody account. The constants have the following semantics: RISK_CLASSIFICATION - Verification of the risk profile of the customer compared to the instrument risk of the securities. KNOWLEDGE - Verification of the product knowledge of the customer. The confirmation must be given when the marketorder is being authorised. |
Location | Location of the created resource. |
DELETE /market-orders/{marketorderId}
DELETE /market-orders/{marketorderId}
Request
DELETE /market-orders/{marketorderId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
DELETE /market-orders/{marketorderId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
...
This method initiates the cancellation of a market order. Depending on the ASPSP's implementation, this TPP call might be sufficient to cancel a market order. If an authorisation of the market order cancellation is mandated by the ASPSP, a corresponding hyperlink will be contained in the response message.
Cancels the addressed market order with resource identification marketorderId 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
- access method was rejected,
- access method was successful, or
- access method is generally applicable, but further authorisation processes are needed.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) |
GET /market-orders/{marketorderId}
GET /market-orders/{marketorderId}
Request
GET /market-orders/{marketorderId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-ID: ...
Trading-Hours: ...
MiFID-Confirmation-Required: ...
...
Returns the content of a market order object.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Trading-Hours | In case the order is made outside of the regular trading hours, this field contains information about the ASPSP trading hours. |
MiFID-Confirmation-Required | In case the order requires mifid confirmation, the header contains a list of customer depots that require MiFID confirmation for the order within the start authorization process. The string has the form {bban}=(RISK_CLASSIFICATION |
GET /market-orders/{marketorderId}/authorisations
GET /market-orders/{marketorderId}/authorisations
Request
GET /market-orders/{marketorderId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
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.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /market-orders/{marketorderId}/authorisations
POST /market-orders/{marketorderId}/authorisations
Request
POST /market-orders/{marketorderId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"mifidConfirmation" : [ {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "BARC12345612345678"
}, {
"confirmation" : "KNOWLEDGE",
"bban" : "..."
} ],
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
POST /market-orders/{marketorderId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"mifidConfirmation" : [ {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "BARC12345612345678"
}, {
"confirmation" : "KNOWLEDGE",
"bban" : "..."
} ],
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-ID: ...
Trading-Hours: ...
ASPSP-SCA-Approach: ...
{
"authorisationId" : "123auth456",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "finalised",
"scaMethods" : [ {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
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 market order data with the first POST market-order 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 an '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.
- 'startAuthorisationWithPsuIdentfication',
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an 'startAuthorisation' hyperlink in the preceding Market Order 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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdateMifidConfirmation |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Trading-Hours | In case the order is made outside of the regular trading hours, this field contains information about the ASPSP trading hours. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
GET /market-orders/{marketorderId}/authorisations/{authorisationId}
GET /market-orders/{marketorderId}/authorisations/{authorisationId}
Request
GET /market-orders/{marketorderId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "failed",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a payment initiation's authorisation sub-resource.
For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the transaction and updates the status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /market-orders/{marketorderId}/authorisations/{authorisationId}
PUT /market-orders/{marketorderId}/authorisations/{authorisationId}
Request
PUT /market-orders/{marketorderId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"mifidConfirmation" : [ {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "BARC12345612345678"
}, {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "..."
} ],
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /market-orders/{marketorderId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"mifidConfirmation" : [ {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "BARC12345612345678"
}, {
"confirmation" : "RISK_CLASSIFICATION",
"bban" : "..."
} ],
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "received",
"scaMethods" : [ {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "characters",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This methods updates PSU data on the authorisation resource if needed. It may authorise a market order within the Embedded SCA Approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
There are several possible Update PSU Data requests in the context of payment initiation services needed, which depends on the SCA approach:
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdateMifidConfirmation |
Response Body
media type | data type | description |
---|---|---|
application/json | UpdatePsuDataResponse |
GET /market-orders/{marketorderId}/cancellation-authorisations
GET /market-orders/{marketorderId}/cancellation-authorisations
Request
GET /market-orders/{marketorderId}/cancellation-authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}/cancellation-authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
Retrieve a list of all created cancellation authorisation sub-resources.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /market-orders/{marketorderId}/cancellation-authorisations
POST /market-orders/{marketorderId}/cancellation-authorisations
Request
POST /market-orders/{marketorderId}/cancellation-authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
POST /market-orders/{marketorderId}/cancellation-authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-ID: ...
Trading-Hours: ...
ASPSP-SCA-Approach: ...
{
"authorisationId" : "123auth456",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "finalised",
"scaMethods" : [ {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
Creates an authorisation sub-resource and start the authorisation process of the cancellation of the addressed payment. 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 cancellation-authorisation.
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 an '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.
- 'startAuthorisationWithPsuIdentfication',
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an '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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Trading-Hours | In case the order is made outside of the regular trading hours, this field contains information about the ASPSP trading hours. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
GET /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
GET /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Request
GET /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "failed",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a payment initiation's authorisation sub-resource.
For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the transaction and updates the status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
PUT /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Request
PUT /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /market-orders/{marketorderId}/cancellation-authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "unconfirmed",
"scaMethods" : [ {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This method updates PSU data on the cancellation authorisation resource if needed. It may authorise a cancellation of the market order within the Embedded SCA Approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
This methods updates PSU data on the cancellation authorisation resource if needed.
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | UpdatePsuDataResponse |
GET /market-orders/{marketorderId}/status
GET /market-orders/{marketorderId}/status
Request
GET /market-orders/{marketorderId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /market-orders/{marketorderId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-ID: ...
...
Check the transaction status of a market order initiation.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
marketorderId | path | Resource identification of the generated market order initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Confirmation of Funds Service (PIIS)
Confirmation of Funds Service (PIIS) returns a confirmation of funds request at the ASPSP.
POST /funds-confirmations
POST /funds-confirmations
Request
POST /funds-confirmations
Content-Type: application/json
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"cardNumber" : "...",
"account" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"payee" : "...",
"instructedAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
}
}
POST /funds-confirmations
Content-Type: application/json
Accept: application/json
Authorization: ...
Consent-ID: ...
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"cardNumber" : "...",
"account" : {
"iban" : "DE27100777770209299700",
"bban" : "BARC12345612345678",
"pan" : "5409050000000000",
"maskedPan" : "123456xxxxxx1234",
"msisdn" : "+49 170 1234567",
"currency" : "EUR"
},
"payee" : "...",
"instructedAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
}
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"fundsAvailable" : true
}
Creates a confirmation of funds request at the ASPSP. Checks whether a specific amount is available at point of time of the request on an account linked to a given tuple card issuer(TPP)/card number, or addressed by IBAN and TPP respectively. If the related extended services are used a conditional Consent-ID is contained in the header. This field is contained but commented out in this specification.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Authorization | header | This field might be used in case where a consent was agreed between ASPSP and PSU through an OAuth2 based protocol, facilitated by the TPP. | |
Consent-ID | header | This then contains the consentId of the related AIS consent, which was performed prior to accessing this account. | |
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
409 | Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | FundsConfirmationResponse |
Payment Initiation Service (PIS)
The Description for Payment Initiation Service (PIS) offers the following services:
- Initiation and update of a payment request
- Status information of a payment
POST /{payment-service}/{payment-product}
POST /{payment-service}/{payment-product}
Request
POST /{payment-service}/{payment-product}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
POST /{payment-service}/{payment-product}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
ASPSP-Notification-Support: ...
X-Request-ID: ...
ASPSP-SCA-Approach: ...
ASPSP-Notification-Content: ...
Location: ...
{
"transactionStatus" : "ACSC",
"paymentId" : "...",
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFee" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"transactionFeeIndicator" : true,
"scaMethods" : [ {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "characters",
"additionalInformation" : "..."
},
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithTransactionAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"self" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"psuMessage" : "...",
"tppMessages" : [ {
"category" : "ERROR",
"text" : "...",
"path" : "...",
"code" : { }
}, {
"category" : "ERROR",
"text" : "...",
"path" : "...",
"code" : { }
} ]
}
This method is used to initiate a payment at the ASPSP.
Variants of Payment Initiation Requests
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:
- Payment products with payment information in JSON format:
- sepa-credit-transfers
- instant-sepa-credit-transfers
- target-2-payments
- cross-border-credit-transfers
- Payment products with payment information in pain.001 XML format:
- pain.001-sepa-credit-transfers
- pain.001-instant-sepa-credit-transfers
- pain.001-target-2-payments
- pain.001-cross-border-credit-transfers
Furthermore the request body depends on the payment-service
- payments: A single payment initiation request.
- bulk-payments: A collection of several payment iniatiation 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.
Single and multilevel SCA Processes
The Payment Initiation Requests are independent from the need of one ore 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.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Corporate-ID | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Corporate-ID-Type | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | required |
PSU-ID-Type | header | Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Brand-Logging-Information | header | 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-Explicit-Authorisation-Preferred | header | 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. | boolean |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
TPP-Rejection-NoFunds-Preferred | path | 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. | boolean |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | string (JSON) |
application/xml | object |
Response Body
media type | data type | description |
---|---|---|
application/json | PaymentInitiationResponse |
Response Headers
name | description |
---|---|
ASPSP-Notification-Support | true if the ASPSP supports resource status notification services. False if the ASPSP supports resource status notification in general, but not for the current request. Not used, if resource status notification services are generally not supported by the ASPSP. Shall be supported if the ASPSP supports resource status notification services. |
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
Trading-Hours | In case the order is made outside of the regular trading hours, this field contains information about the ASPSP trading hours. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
ASPSP-Notification-Content | 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 following semantics: SCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource. PROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource. LAST: - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource. This field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request. |
MiFID-Confirmation-Required | In case the order requires mifid confirmation, the header contains a list of customer depots that require MiFID confirmation for the order within the start authorization process. The string has the form {bban}=(RISK_CLASSIFICATION/KNOWLEDGE) comma separated for each custody account. The constants have the following semantics: RISK_CLASSIFICATION - Verification of the risk profile of the customer compared to the instrument risk of the securities. KNOWLEDGE - Verification of the product knowledge of the customer. The confirmation must be given when the marketorder is being authorised. |
Location | Location of the created resource. |
DELETE /{payment-service}/{payment-product}/{paymentId}
DELETE /{payment-service}/{payment-product}/{paymentId}
Request
DELETE /{payment-service}/{payment-product}/{paymentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
DELETE /{payment-service}/{payment-product}/{paymentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
...
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
- access method was rejected,
- access method was successful, or
- access method is generally applicable, but further authorisation processes are needed.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) |
GET /{payment-service}/{payment-product}/{paymentId}
GET /{payment-service}/{payment-product}/{paymentId}
Request
GET /{payment-service}/{payment-product}/{paymentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
...
Returns the content of a payment object.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) | Depending on the payment service and payment product, one of pain 001 xml message, one of pain 001 xml message, [PaymentInitiationWithStatusResponse], [BulkPaymentInitiationWithStatusResponse] or [PeriodicPaymentInitiationWithStatusResponse]. |
application/xml | object |
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
Request
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
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.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /{payment-service}/{payment-product}/{paymentId}/authorisations
POST /{payment-service}/{payment-product}/{paymentId}/authorisations
Request
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
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 an '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.
- 'startAuthorisationWithPsuIdentfication',
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an '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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
GET /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
GET /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Request
GET /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "received",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a payment initiation's authorisation sub-resource.
For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the transaction and updates the status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationID | path | Resource identification of the related SCA. | required |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
PUT /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Request
PUT /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "psuAuthenticated",
"scaMethods" : [ {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "characters",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This methods updates PSU data on the authorisation resource if needed. It may authorise a payment within the Embedded SCA Approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
There are several possible Update PSU Data requests in the context of payment initiation services needed, which depends on the SCA approach:
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationID | path | Resource identification of the related SCA. | required |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | UpdatePsuDataResponse |
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Request
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
Retrieve a list of all created cancellation authorisation sub-resources.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers , pain.001-instant-sepa-credit-transfers , pain.001-target-2-payments , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
POST /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Request
POST /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
POST /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-ID: ...
ASPSP-SCA-Approach: ...
{
"authorisationId" : "123auth456",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "exempted",
"scaMethods" : [ {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "CHIP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "characters",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
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 an '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.
- 'startAuthorisationWithPsuIdentfication',
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an '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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers . pain.001-instant-sepa-credit-transfers . pain.001-target-2-payment , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
Response Headers
name | description |
---|---|
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Request
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "received",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a payment initiation's authorisation sub-resource.
For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the transaction and updates the status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationId | path | Resource identification of the related SCA. | required |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers . pain.001-instant-sepa-credit-transfers . pain.001-target-2-payment , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
PUT /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Request
PUT /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "psuIdentified",
"scaMethods" : [ {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "characters",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This method updates PSU data on the cancellation authorisation resource if needed. It may authorise a cancellation of the payment within the Embedded SCA Approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
This methods updates PSU data on the cancellation authorisation resource if needed.
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationID | path | Resource identification of the related SCA. | required |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers . pain.001-instant-sepa-credit-transfers . pain.001-target-2-payment , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | UpdatePsuDataResponse |
GET /{payment-service}/{payment-product}/{paymentId}/status
GET /{payment-service}/{payment-product}/{paymentId}/status
Request
GET /{payment-service}/{payment-product}/{paymentId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /{payment-service}/{payment-product}/{paymentId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
...
Check the transaction status of a payment initiation.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Accept | header | The TPP can indicate the formats of status reports supported together with a prioritisation following the HTTP header definition. The formats supported by this specification are xml and JSON . If only one format is supported by the TPP, which is not supported by the ASPSP this can lead to a rejection of the request. |
|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
payment-product | path | The addressed payment product endpoint, e.g. for SEPA Credit Transfers (SCT). The ASPSP will publish which of the payment products/endpoints will be supported. Possible values are depending on the support of the ASPSP: sepa-credit-transfers , instant-sepa-credit-transfers , target-2-payments , cross-border-credit-transfers , pain.001-sepa-credit-transfers . pain.001-instant-sepa-credit-transfers . pain.001-target-2-payment , pain.001-cross-border-credit-transfers Remark: For all SEPA Credit Transfer based endpoints which accept XML encoding, the XML pain.001 schemes provided by EPC are supported by the ASPSP as a minimum for the body content. Further XML schemes might be supported by some communities. Remark: For cross-border and TARGET-2 payments only community wide pain.001 schemes do exist. There are plenty of country specific scheme variants. |
|
payment-service | path | Payment Service Possible values are depending on the support of the ASPSP: payments , bulk-payments , periodic-payments |
|
paymentId | path | Resource identification of the generated payment initiation resource. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | object (JSON) | |
application/xml | object |
Signing Baskets (SBS)
Signing basket methods are used for authorising several transactions and resp. or consents with one SCA operation.
POST /signing-baskets
POST /signing-baskets
Request
POST /signing-baskets
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"paymentIds" : [ "...", "..." ],
"consentIds" : [ "...", "..." ],
"marketorderIds" : [ "...", "..." ]
}
POST /signing-baskets
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Corporate-ID: ...
PSU-Corporate-ID-Type: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-ID-Type: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Brand-Logging-Information: ...
TPP-Explicit-Authorisation-Preferred: ...
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"paymentIds" : [ "...", "..." ],
"consentIds" : [ "...", "..." ],
"marketorderIds" : [ "...", "..." ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
ASPSP-Notification-Support: ...
X-Request-ID: ...
ASPSP-SCA-Approach: ...
ASPSP-Notification-Content: ...
Location: ...
{
"transactionStatus" : "ACFC",
"basketId" : "1234-basket-567",
"scaMethods" : [ {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"psuMessage" : "...",
"tppMessages" : [ {
"category" : "WARNING",
"text" : "...",
"path" : "...",
"code" : { }
}, {
"category" : "WARNING",
"text" : "...",
"path" : "...",
"code" : { }
} ],
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithProprietaryData" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithTransactionAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"self" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}
}
Create a signing basket resource for authorising several transactions with one SCA method. The resource identifications of these transactions are contained in the payload of this access method.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Corporate-ID | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Corporate-ID-Type | header | Might be mandated in the ASPSP's documentation. Only used in a corporate context. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | required |
PSU-ID-Type | header | Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Brand-Logging-Information | header | 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-Explicit-Authorisation-Preferred | header | 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. | boolean |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | SigningBasketRequestBody |
Response Body
media type | data type | description |
---|---|---|
application/json | SigningBasketInitiationResponse |
Response Headers
name | description |
---|---|
ASPSP-Notification-Support | true if the ASPSP supports resource status notification services. False if the ASPSP supports resource status notification in general, but not for the current request. Not used, if resource status notification services are generally not supported by the ASPSP. Shall be supported if the ASPSP supports resource status notification services. |
X-Request-ID | ID of the request, unique to the call, as determined by the initiating party. |
ASPSP-SCA-Approach | This data element must be contained, if the SCA Approach is already fixed. Possible values are EMBEDDED, DECOUPLED, REDIRECT. The OAuth SCA approach will be subsumed by REDIRECT. |
ASPSP-Notification-Content | 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 following semantics: SCA - Notification on every change of the scaStatus attribute for all related authorisation processes is provided by the ASPSP for the related resource. PROCESS - Notification on all changes of consentStatus or transactionStatus attributes is provided by the ASPSP for the related resource. LAST - Notification on the last consentStatus or transactionStatus as available in the XS2A interface is provided by the ASPSP for the related resource. This field must be provided if the ASPSP-Notification-Support=true. The ASPSP might consider the notification content as preferred by the TPP, but can also respond independently of the preferred request. |
Location | Location of the created resource. |
DELETE /signing-baskets/{basketId}
DELETE /signing-baskets/{basketId}
Request
DELETE /signing-baskets/{basketId}
Content-Type: */*
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
DELETE /signing-baskets/{basketId}
Content-Type: */*
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Delete the signing basket structure as long as no (partial) authorisation has yet been applied. The undlerying transactions are not affected by this deletion.
Remark: The signing basket as such is not deletable after a first (partial) authorisation has been applied. Nevertheless, single transactions might be cancelled on an individual basis on the XS2A interface.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
GET /signing-baskets/{basketId}
GET /signing-baskets/{basketId}
Request
GET /signing-baskets/{basketId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /signing-baskets/{basketId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"payments" : [ "...", "..." ],
"consents" : [ "...", "..." ],
"marketorders" : [ "...", "..." ],
"transactionStatus" : "CANC",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithProprietaryData" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithTransactionAuthorisation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"self" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
}
}
Returns the content of a signing basket object.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | SigningBasketResponse |
GET /signing-baskets/{basketId}/authorisations
GET /signing-baskets/{basketId}/authorisations
Request
GET /signing-baskets/{basketId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /signing-baskets/{basketId}/authorisations
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationIds" : [ "...", "..." ]
}
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.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | Authorisations |
POST /signing-baskets/{basketId}/authorisations
POST /signing-baskets/{basketId}/authorisations
Request
POST /signing-baskets/{basketId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
POST /signing-baskets/{basketId}/authorisations
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"
TPP-Nok-Redirect-URI: ...
TPP-Notification-Content-Preferred: ...
TPP-Notification-URI: ...
TPP-Redirect-Preferred: ...
TPP-Redirect-URI: ...
TPP-Signature-Certificate: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorisationId" : "123auth456",
"_links" : {
"scaRedirect" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaOAuth" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuIdentification" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updatePsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"startAuthorisationWithEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"status" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"confirmation" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "started",
"scaMethods" : [ {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "SMS_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PHOTO_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
Create an authorisation sub-resource and start the authorisation process of a signing basket. 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 signing-baskets.
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 signing basket 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 an '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.
- 'startAuthorisationWithPsuIdentfication'
- 'startAuthorisationWithPsuAuthentication'
- 'startAuthorisationWithEncryptedPsuAuthentication'
- 'startAuthorisationWithAuthentciationMethodSelection'
- The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
- The ASPSP has indicated with an '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.
- The signing basket needs to be authorised yet.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Nok-Redirect-URI | header | 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-Notification-Content-Preferred | header | 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. | |
TPP-Notification-URI | header | 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-Redirect-Preferred | header | 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. | boolean |
TPP-Redirect-URI | header | 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-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | StartScaprocessResponse |
GET /signing-baskets/{basketId}/authorisations/{authorisationId}
GET /signing-baskets/{basketId}/authorisations/{authorisationId}
Request
GET /signing-baskets/{basketId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /signing-baskets/{basketId}/authorisations/{authorisationId}
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"scaStatus" : "exempted",
"trustedBeneficiaryFlag" : true
}
This method returns the SCA status of a signing basket's authorisation sub-resource. For DECOUPLED SCA approach, calling this method will check if the PSU has approved or rejected the consent and updates the consent status accordingly.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationID | path | Resource identification of the related SCA. | required |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ScaStatusResponse |
PUT /signing-baskets/{basketId}/authorisations/{authorisationId}
PUT /signing-baskets/{basketId}/authorisations/{authorisationId}
Request
PUT /signing-baskets/{basketId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
PUT /signing-baskets/{basketId}/authorisations/{authorisationId}
Content-Type: application/json
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-ID: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
{
"psuData" : {
"password" : "...",
"encryptedPassword" : "...",
"additionalPassword" : "...",
"additionalEncryptedPassword" : "..."
},
"authenticationMethodId" : "myAuthenticationID",
"scaAuthenticationData" : "...",
"confirmationCode" : "..."
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"currencyConversionFees" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedTotalAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"estimatedInterbankSettlementAmount" : {
"amount" : 5877.78,
"currency" : "EUR"
},
"_links" : {
"selectAuthenticationMethod" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"authoriseTransaction" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"scaStatus" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
},
"updateAdditionalEncryptedPsuAuthentication" : {
"href" : "/v1/payments/sepa-credit-transfers/1234-wertiq-983"
}
},
"scaStatus" : "started",
"scaMethods" : [ {
"authenticationType" : "SMTP_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
}, {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "...",
"explanation" : "..."
} ],
"chosenScaMethod" : {
"authenticationType" : "PUSH_OTP",
"authenticationVersion" : "...",
"authenticationMethodId" : "...",
"name" : "SMS OTP on phone +49160 xxxxx 28",
"explanation" : "..."
},
"challengeData" : {
"image" : "...",
"data" : [ "...", "..." ],
"imageLink" : "...",
"otpMaxLength" : 12345,
"otpFormat" : "integer",
"additionalInformation" : "..."
},
"psuMessage" : "..."
}
This method update PSU data on the signing basket resource if needed. It may authorise a igning basket within the embedded SCA approach where needed.
Independently from the SCA Approach it supports e.g. the selection of the authentication method and a non-SCA PSU authentication.
This methods updates PSU data on the cancellation authorisation resource if needed.
There are several possible Update PSU Data requests in the context of payment initiation services needed, which depends on the SCA approach:
- Redirect SCA Approach: A specific Update PSU Data Request is applicable for
- the selection of authentication methods, before choosing the actual SCA approach.
- Decoupled SCA Approach: A specific Update PSU Data Request is only applicable for
- adding the PSU Identification, if not provided yet in the Payment Initiation Request or the Account Information Consent Request, or if no OAuth2 access token is used, or
- the selection of authentication methods.
- Embedded SCA Approach: The Update PSU Data Request might be used
- to add credentials as a first factor authentication data of the PSU and
- to select the authentication method and
- transaction authorisation.
Important: The available SCA approaches are ASPSP and PSU specific and might differ from bank to bank.
The SCA Approach might depend on the chosen SCA method. For that reason, the following possible Update PSU Data request can apply to all SCA approaches:
- Select an SCA method in case of several SCA methods are available for the customer.
There are the following request types on this access path:
- Update PSU Identification
- Update PSU Authentication
- Select PSU Autorization Method WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
- Transaction Authorisation WARNING: This method need a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-ID | header | Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceeding AIS service in the same session. | |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
authorisationID | path | Resource identification of the related SCA. | required |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Request Body
media type | data type |
---|---|
application/json | AuthorisationUpdate |
Response Body
media type | data type | description |
---|---|---|
application/json | UpdatePsuDataResponse |
GET /signing-baskets/{basketId}/status
GET /signing-baskets/{basketId}/status
Request
GET /signing-baskets/{basketId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /signing-baskets/{basketId}/status
Content-Type: */*
Accept: application/json
Digest: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-IP-Address: ...
PSU-IP-Port: ...
PSU-User-Agent: ...
Signature: keyId="SN=9FA1,CA=CN=D-TRUST%20CA%202-1%202015,O=D-Trust%20GmbH,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: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"transactionStatus" : "ACWP"
}
Returns the status of a signing basket object.
Request Parameters
name | type | description | constraints |
---|---|---|---|
Digest | header | Is contained if and only if the "Signature" element is contained in the header of the request. | |
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-IP-Address | header | 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. | required |
PSU-IP-Port | header | The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. | |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
Signature | header | A signature of the request by the TPP on application level. This might be mandated by ASPSP. | |
TPP-Signature-Certificate | header | The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
basketId | path | This identification of the corresponding signing basket object. | required |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
201 | POST response code where Payment Initiation or Consent Request was correctly performed. | |
202 | DELETE response code, where a payment resource can be cancelled in general, but where a cancellation authorisation is needed in addition. | |
204 | DELETE response code where a consent resource was successfully deleted. The code indicates that the request was performed, but no content was returned. | |
400 | Validation error occurred. This code will cover malformed syntax in request or incorrect data in payload. | |
401 | The TPP or the PSU is not correctly authorized to perform the request. Retry the request with correct authentication information. | |
403 | Returned if the resource that was referenced in the path exists but cannot be accessed by the TPP or the PSU. This code should only be used for non-sensitive id references as it will reveal that the resource exists even though it cannot be accessed. | |
404 | Returned if the resource or endpoint that was referenced in the path does not exist or cannot be referenced by the TPP or the PSU. When in doubt if a specific id in the path is sensitive or not, use the HTTP response code 404 instead of the HTTP response code 403. | |
405 | This code is only sent when the HTTP method (PUT, POST, DELETE, GET etc.) is not supported on a specific endpoint. It has nothing to do with the consent, payment or account information data model. | |
406 | The ASPSP cannot generate the content that the TPP specified in the Accept header. | |
408 | The server is still working correctly, but an individual request has timed out. | |
415 | The TPP has supplied a media type which the ASPSP does not support. | |
429 | The TPP has exceeded the number of requests allowed by the consent or by the RTS. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | SigningBasketStatusResponse |
Utility
General services that indicate availability of the psd2 interface and backend services.
GET /utility/healthcheck
GET /utility/healthcheck
Request
GET /utility/healthcheck
Content-Type: */*
...
GET /utility/healthcheck
Content-Type: */*
...
Response
HTTP/1.1 204 No Content
Low cost service to check if the ASPSP backend services are available.
Response Codes
code | condition | type |
---|---|---|
204 | Indicates general availability. | |
500 | Internal server error occurred. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
GET /utility/system-messages
GET /utility/system-messages
Request
GET /utility/system-messages
Content-Type: */*
Accept: application/json
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-User-Agent: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /utility/system-messages
Content-Type: */*
Accept: application/json
PSU-Accept: ...
PSU-Accept-Charset: ...
PSU-Accept-Encoding: ...
PSU-Accept-Language: ...
PSU-Device-ID: ...
PSU-Geo-Location: ...
PSU-Http-Method: ...
PSU-User-Agent: ...
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"systemMessages" : [ {
"topic" : "Maintenance Information",
"message" : "Due to maintenance work, online banking will not be available between 05:00 to 06:00.",
"lastChange" : "..."
}, {
"topic" : "...",
"message" : "...",
"lastChange" : "..."
} ]
}
Returns general available system messages as published by the ASPSP that can be shown to the psu.
Not supported by all ASPSPs.
Request Parameters
name | type | description | constraints |
---|---|---|---|
PSU-Accept | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Charset | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Encoding | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Accept-Language | header | The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. | |
PSU-Device-ID | header | 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 need to be unaltered until removal from device. | regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
PSU-Geo-Location | header | The forwarded Geo Location of the corresponding http request between PSU and TPP if available. | regex: ^GEO:([-+]?)([\d]{1,2})(((.)(\d+)(,)))(\s*)(([-+]?)([\d]{1,3})((.)(\d+))?)$ |
PSU-Http-Method | header | HTTP method used at the PSU ? TPP interface, if available. Valid values are: GET, POST, PUT, PATCH, DELETE | regex: ^(GET/POST/PUT/PATCH/DELETE)$ |
PSU-User-Agent | header | The forwarded Agent header field of the HTTP request between PSU and TPP, if available. | |
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition | type |
---|---|---|
200 | PUT, GET Response Codes. This return code is permitted if a request was repeated due to a time-out. The response in that might be either a 200 or 201 code depending on the ASPSP implementation. The POST for a Funds request will also return 200 since it does not create a new resource. DELETE Response Code where a payment resource has been cancelled successfully and no further cancellation authorisation is required. | |
500 | Internal server error occurred. | |
501 | Indicates that the ASPSP does not support the requested resource. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | SystemMessageResponse |
GET /utility/version
GET /utility/version
Request
GET /utility/version
Content-Type: */*
Accept: application/json
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
GET /utility/version
Content-Type: */*
Accept: application/json
X-Request-ID: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721
...
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"version" : "1.3.6"
}
Read the application version of the interface.
Request Parameters
name | type | description | constraints |
---|---|---|---|
X-Request-ID | header | ID of the request, unique to the call, as determined by the initiating party. | required, regex: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
Response Codes
code | condition | type |
---|---|---|
200 | The version of the currently deployed psd2 interface. | |
500 | Internal server error occurred. | |
503 | The ASPSP server is currently unavailable. Generally, this is a temporary state. |
Response Body
media type | data type | description |
---|---|---|
application/json | ApplicationVersionResponse |