Summary

The NextGenPSD2 Framework Version 1.3.6 (with errata) offers a modern, open, harmonised and interoperable set of Application Programming Interfaces (APIs) as the safest and most efficient way to provide data securely. The NextGenPSD2 Framework reduces XS2A complexity and costs, addresses the problem of multiple competing standards in Europe and, aligned with the goals of the Euro Retail Payments Board, enables European banking customers to benefit from innovative products and services ('Banking as a Service') by granting TPPs safe and secure (authenticated and authorised) access to their bank accounts and financial data.

The possible Approaches are:

  • Redirect SCA Approach

  • OAuth SCA Approach

  • Decoupled SCA Approach

  • Embedded SCA Approach without SCA method

  • Embedded SCA Approach with only one SCA method available

  • Embedded SCA Approach with Selection of a SCA method

    Not every message defined in this API definition is necessary for all approaches. Furthermore this API definition does not differ between methods which are mandatory, conditional, or optional. Therefore for a particular implementation of a Berlin Group PSD2 compliant API it is only necessary to support a certain subset of the methods defined in this API definition.

  • Please have a look at the implementation guidelines if you are not sure which message has to be used for the approach you are going to use.*

General Remarks on Data Types

The Berlin Group definition of UTF-8 strings in context of the PSD2 API has to support at least the following characters

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

/ - ? : ( ) . , ' +

Space

Payment Initiation Service (PIS)

The component for Payment Initiation Service (PIS) offers the following services:

  • Initiation and update of a payment request
  • Status information of a payment

Payment initiation request

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 initiation requests.

    In case of a pain.001 message there are more than one payments contained in the *pain.001 message.

    In case of a JSON there are several JSON payment blocks contained in a joining list.

  • periodic-payments: Create a standing order initiation resource for recurrent i.e. periodic payments addressable under {paymentId} with all data relevant for the corresponding payment product and the execution of the standing order contained in a JSON body.

This is the first step in the API to initiate the related recurring/periodic payment.

Single and mulitilevel SCA Processes

The payment initiation requests are independent from the need of one or multilevel SCA processing, i.e. independent from the number of authorisations needed for the execution of payments.

But the response messages are specific to either one SCA processing or multilevel SCA processing.

For payment initiation with multilevel SCA, this specification requires an explicit start of the authorisation, i.e. links directly associated with SCA processing like 'scaRedirect' or 'scaOAuth' cannot be contained in the response message of a Payment Initation Request for a payment, where multiple authorisations are needed. Also if any data is needed for the next action, like selecting an SCA method is not supported in the response, since all starts of the multiple authorisations are fully equal. In these cases, first an authorisation sub-resource has to be generated following the 'startAuthorisation' link.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

TPP-PSU-ID
required
string
Example: 'PSU-1234'

Client ID of the PSU in the TPP client interface.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
required
string <ipv4>
Example: '192.168.8.78'

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.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Explicit-Authorisation-Preferred
boolean

If it equals "true", the TPP prefers to start the authorisation process separately, e.g. because of the usage of a signing basket. This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.

If it equals "false" or if the parameter is not used, there is no preference of the TPP. This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, without using a signing basket.

TPP-Rejection-NoFunds-Preferred
boolean

If it equals "true" then the TPP prefers a rejection of the payment initiation in case the ASPSP is providing an integrated confirmation of funds request an the result of this is that not sufficient funds are available.

If it equals "false" then the TPP prefers that the ASPSP is dealing with the payment initiation like in the ASPSPs online channel, potentially waiting for a certain time period for funds to arrive to initiate the payment.

This parameter might be ignored by the ASPSP.

TPP-Brand-Logging-Information
string

This header might be used by TPPs to inform the ASPSP about the brand used by the TPP towards the PSU. This information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP. This header might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema:

JSON request body for a payment inition request message.

There are the following payment-products supported:

  • "sepa-credit-transfers" with JSON-Body
  • "instant-sepa-credit-transfers" with JSON-Body
  • "target-2-payments" with JSON-Body
  • "cross-border-credit-transfers" with JSON-Body
  • "pain.001-sepa-credit-transfers" with XML pain.001.001.03 body for SCT scheme
  • "pain.001-instant-sepa-credit-transfers" with XML pain.001.001.03 body for SCT INST scheme
  • "pain.001-target-2-payments" with pain.001 body. Only country specific schemes are currently available
  • "pain.001-cross-border-credit-transfers" with pain.001 body. Only country specific schemes are currently available

There are the following payment-services supported:

  • "payments"
  • "periodic-payments"
  • "bulk-paments"

All optional, conditional and predefined but not yet used fields are defined.

One of
  • paymentInitiation_json
  • periodicPaymentInitiation_json
  • bulkPaymentInitiation_json
endToEndIdentification
string <= 35 characters
debtorAccount
required
object (accountReference)

Reference to an account by either

  • IBAN, of a payment accounts, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
instructedAmount
required
object (amount)
creditorAccount
required
object (accountReference)

Reference to an account by either

  • IBAN, of a payment accounts, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
creditorAgent
string (bicfi) [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}

BICFI

creditorAgentName
string (creditorAgentName) <= 70 characters

Creditor agent name.

creditorName
required
string (creditorName) <= 70 characters

Creditor name.

creditorAddress
object (address)
remittanceInformationUnstructured
string (remittanceInformationUnstructured) <= 140 characters

Unstructured remittance information.

Responses

201

CREATED

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/{payment-service}/{payment-product}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}

Request samples

Content type
Example
Copy
Expand all Collapse all
{
  • "instructedAmount":
    {
    },
  • "debtorAccount":
    {
    },
  • "creditorName": "Merchant123",
  • "creditorAccount":
    {
    },
  • "remittanceInformationUnstructured": "Ref Number Merchant"
}

Response samples

Content type
application/json
Example

Response in case of a redirect with an implicitly created authorisation sub-resource

Copy
Expand all Collapse all
{
  • "transactionStatus": "RCVD",
  • "paymentId": "1234-wertiq-983",
  • "_links":
    {
    }
}

Get payment information

Returns the content of a payment object

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

Response samples

Content type
Example
Copy
Expand all Collapse all
{
  • "endToEndIdentification": "string",
  • "debtorAccount":
    {
    },
  • "instructedAmount":
    {
    },
  • "creditorAccount":
    {
    },
  • "creditorAgent": "AAAADEBBXXX",
  • "creditorName": "Creditor Name",
  • "creditorAddress":
    {
    },
  • "remittanceInformationUnstructured": "Ref Number Merchant",
  • "transactionStatus": "ACCP"
}

Payment cancellation request

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.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Explicit-Authorisation-Preferred
boolean

If it equals "true", the TPP prefers to start the authorisation process separately, e.g. because of the usage of a signing basket. This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.

If it equals "false" or if the parameter is not used, there is no preference of the TPP. This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, without using a signing basket.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

202

Received

204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

delete/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "transactionStatus": "ACTC",
  • "_links":
    {
    }
}

Payment initiation status request

Check the transaction status of a payment initiation.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/status

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/status

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/status

Response samples

Content type
Example
Copy
Expand all Collapse all
{
  • "transactionStatus": "ACCP"
}

Start the authorisation process for a payment initiation

Create an authorisation sub-resource and start the authorisation process. The message might in addition transmit authentication and authorisation related data.

This method is iterated n times for a n times SCA authorisation in a corporate context, each creating an own authorisation sub-endpoint for the corresponding PSU authorising the transaction.

The ASPSP might make the usage of this access method unnecessary in case of only one SCA process needed, since the related authorisation resource might be automatically created by the ASPSP after the submission of the payment data with the first POST payments/{payment-product} call.

The start authorisation process is a process which is needed for creating a new authorisation or cancellation sub-resource.

This applies in the following scenarios:

  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment initiation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms:
    • 'startAuthorisationWithPsuIdentfication'
    • 'startAuthorisationWithPsuAuthentication'
    • 'startAuthorisationWithEncryptedPsuAuthentication'
    • 'startAuthorisationWithAuthentciationMethodSelection'
  • The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
  • The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
  • The signing basket needs to be authorised yet.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Get payment initiation authorisation sub-resources request

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "authorisationIds":
    [
    ]
}

Read the SCA status of the payment authorisation

This method returns the SCA status of a payment initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU data for payment initiation

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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Start the authorisation process for the cancellation of the addressed payment

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 a 'startAuthorisation' hyperlink in the preceding payment initiation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms:
    • 'startAuthorisationWithPsuIdentfication'
    • 'startAuthorisationWithPsuAuthentication'
    • 'startAuthorisationWithAuthentciationMethodSelection'
  • The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
  • The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
  • The signing basket needs to be authorised yet.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Will deliver an array of resource identifications to all generated cancellation authorisation sub-resources

Retrieve a list of all created cancellation authorisation sub-resources.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "authorisationIds":
    [
    ]
}

Read the SCA status of the payment cancellation's authorisation

This method returns the SCA status of a payment initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU data for payment initiation cancellation

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.

There are several possible update PSU data requests in the context of a cancellation authorisation within the 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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Confirmation of Funds Service (PIIS)

Confirmation of Funds Service (PIIS) returns a confirmation of funds request at the ASPSP.

Confirmation of funds request

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Authorization
string (authorization)

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.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Request Body schema: application/json

Request body for a confirmation of funds request.

cardNumber
string <= 35 characters

Card Number of the card issued by the PIISP. Should be delivered if available.

account
required
object (accountReference)

Reference to an account by either

  • IBAN, of a payment accounts, or
  • BBAN, for payment accounts if there is no IBAN, or
  • the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or
  • the Primary Account Number (PAN) of a card in a masked form, or
  • an alias to access a payment account via a registered mobile phone number (MSISDN).
payee
string <= 70 characters

Name payee.

instructedAmount
required
object (amount)

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/funds-confirmations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/funds-confirmations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/funds-confirmations

Request samples

Content type
application/json

Request body for a confirmation of funds.

Copy
Expand all Collapse all
{
  • "cardNumber": "12345678901234",
  • "account":
    {
    },
  • "instructedAmount":
    {
    }
}

Response samples

Content type
application/json

Response for a confirmation of funds request.

Copy
Expand all Collapse all
{
  • "fundsAvailable": "true"
}

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

Read account list

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

query Parameters
withBalance
boolean

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/accounts

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/accounts

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/accounts

Response samples

Content type
application/json
Example

Response in case of an example, where the consent has been given on two different IBANs.

Copy
Expand all Collapse all
{
  • "accounts":
    [
    ]
}

Read account details

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

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

query Parameters
withBalance
boolean

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/accounts/{account-id}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/accounts/{account-id}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/accounts/{account-id}

Response samples

Content type
application/json
Example

Account details for a regular Account.

Copy
Expand all Collapse all
{
  • "account":
    {
    }
}

Read balance

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/accounts/{account-id}/balances

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/accounts/{account-id}/balances

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/accounts/{account-id}/balances

Response samples

Content type
application/json
Example

Response for a read balance request in case of a regular account.

Copy
Expand all Collapse all
{
  • "account":
    {
    },
  • "balances":
    [
    ]
}

Read transaction list of an account

Read transaction reports or transaction lists of a given account ddressed 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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

query Parameters
dateFrom
string <date>

Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta access is required and if bookingStatus does not equal "information.

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
string <date>

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.

entryReferenceFrom
string

This data attribute is indicating that the AISP is in favour 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.

bookingStatus
required
string
Enum: "information" "booked" "pending" "both"

Permitted codes are

  • "information",
  • "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
deltaList
boolean

This data attribute is indicating that the AISP is in favour 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

withBalance
boolean

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/accounts/{account-id}/transactions

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/accounts/{account-id}/transactions

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/accounts/{account-id}/transactions

Response samples

Content type
Example

Response in JSON format for an access on a regular account.

Copy
Expand all Collapse all
{
  • "account":
    {
    },
  • "transactions":
    {
    }
}

Read transaction details

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

transactionId
required
string (transactionId)
Example: 3dc3d5b3-7023-4848-9853-f5400a64e80f

This identification is given by the attribute transactionId of the corresponding entry of a transaction list.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/accounts/{account-id}/transactions/{transactionId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/accounts/{account-id}/transactions/{transactionId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/accounts/{account-id}/transactions/{transactionId}

Response samples

Content type
application/json

Example for transaction details.

Copy
Expand all Collapse all
{
  • "transactionsDetails":
    {
    }
}

Read a list of card accounts

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/card-accounts

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/card-accounts

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/card-accounts

Response samples

Content type
application/json

Card account list example.

Copy
Expand all Collapse all
{
  • "cardAccounts":
    [
    ]
}

Read details about a card account

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/card-accounts/{account-id}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/card-accounts/{account-id}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/card-accounts/{account-id}

Response samples

Content type
application/json

Card account details example.

Copy
Expand all Collapse all
{
  • "cardAccount":
    {
    }
}

Read card account balances

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/card-accounts/{account-id}/balances

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/card-accounts/{account-id}/balances

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/card-accounts/{account-id}/balances

Response samples

Content type
application/json

Response in case of card account balance request.

Copy
Expand all Collapse all
{
  • "cardAccount":
    {
    },
  • "balances":
    [
    ]
}

Read transaction list of an account

Reads account data from a given card account addressed by "account-id".

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

account-id
required
string (accountId)
Example: qwer3456tzui7890

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.

query Parameters
dateFrom
string <date>

Conditional: Starting date (inclusive the date dateFrom) of the transaction list, mandated if no delta access is required and if bookingStatus does not equal "information.

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
string <date>

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.

entryReferenceFrom
string

This data attribute is indicating that the AISP is in favour 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.

bookingStatus
required
string
Enum: "information" "booked" "pending" "both"

Permitted codes are

  • "information",
  • "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
deltaList
boolean

This data attribute is indicating that the AISP is in favour 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

withBalance
boolean

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.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

Consent-ID
required
string (consentId)

This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/card-accounts/{account-id}/transactions

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/card-accounts/{account-id}/transactions

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/card-accounts/{account-id}/transactions

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "cardAccount":
    {
    },
  • "cardTransactions":
    {
    },
  • "balances":
    [
    ],
  • "_links":
    {
    }
}

Create consent

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 authorised 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.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

TPP-PSU-ID
required
string
Example: 'PSU-1234'

Client ID of the PSU in the TPP client interface.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Explicit-Authorisation-Preferred
boolean

If it equals "true", the TPP prefers to start the authorisation process separately, e.g. because of the usage of a signing basket. This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.

If it equals "false" or if the parameter is not used, there is no preference of the TPP. This especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, without using a signing basket.

TPP-Brand-Logging-Information
string

This header might be used by TPPs to inform the ASPSP about the brand used by the TPP towards the PSU. This information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP. This header might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-IP-Address
required
string <ipv4>
Example: '192.168.8.78'

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.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json

Request body for a consents request.

access
required
object (accountAccess)

Requested access services for a consent.

recurringIndicator
required
boolean (recurringIndicator)

"true", if the consent is for recurring access to the account data.

"false", if the consent is for one access to the account data.

validUntil
required
string <date> (validUntil)

This parameter is defining a valid until date (including the mentioned date) for the requested consent. The content is the local ASPSP date in ISO-Date format, e.g. 2017-10-30.

Future dates might get adjusted by ASPSP.

If a maximal available date is requested, a date in far future is to be used: "9999-12-31".

In both cases the consent object to be retrieved by the get consent request will contain the adjusted date.

frequencyPerDay
required
integer (frequencyPerDay) >= 1

This field indicates the requested maximum frequency for an access without PSU involvement per day. For a one-off access, this attribute is set to "1".

The frequency needs to be greater equal to one.

If not otherwise agreed bilaterally between TPP and ASPSP, the frequency is less equal to 4.

combinedServiceIndicator
required
boolean

If "true" indicates that a payment initiation service will be addressed in the same "session".

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/consents

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents

Request samples

Content type
application/json
Example

Consent request on dedicated accounts.

Copy
Expand all Collapse all
{
  • "access":
    {
    },
  • "recurringIndicator": "true",
  • "validUntil": "2017-11-01",
  • "frequencyPerDay": "4"
}

Response samples

Content type
application/json
Example

Consent request response in case of a redirect.

Copy
Expand all Collapse all
{
  • "consentStatus": "received",
  • "consentId": "1234-wertiq-983",
  • "_links":
    {}
}

Get consent request

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 redirect SCA Approach.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/consents/{consentId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}

Response samples

Content type
application/json

Consent request on account list or without indication of accounts.

Copy
Expand all Collapse all
{
  • "access":
    {
    },
  • "recurringIndicator": "true",
  • "validUntil": "2017-11-01",
  • "frequencyPerDay": "4",
  • "consentStatus": "valid",
  • "_links":
    {
    }
}

Delete consent

The TPP can delete an account information consent object if needed.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

delete/api/org/{organisation}/v1/consents/{consentId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}

Response samples

Content type
Copy
Expand all Collapse all
{
  • "tppMessages":
    [
    ],
  • "_links":
    {
    }
}

Consent status request

Read the status of an account information consent resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/consents/{consentId}/status

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/status

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/status

Response samples

Content type
application/json

Response for a consent status request.

Copy
Expand all Collapse all
{
  • "consentStatus": "valid"
}

Start the authorisation process for a consent

Create an authorisation sub-resource and start the authorisation process of a consent. The message might in addition transmit authentication and authorisation related data.

his 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.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/consents/{consentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Get consent authorisation sub-resources request

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/consents/{consentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "authorisationIds":
    [
    ]
}

Read the SCA status of the consent authorisation

This method returns the SCA status of a consent initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU Data for consents

This method update PSU data on the consents 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.

This methods updates PSU data on the cancellation authorisation resource if needed.

There are several possible update PSU data requests in the context of a consent request if 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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Common Services

Processes on starting authorisations, update PSU identification or PSU authentication data and explicit authorisation of transactions by using SCA are very similar in PIS and AIS and signing baskets services. The API calls supporting these processes are described in the following independently from the service/endpoint. For reasons of clarity, the endpoints are defined always for the Payment Initiation Service, the payment cancellation, the Account Information Service (Consents), and Signing Baskets separately. These processes usually are used following a hyperlink of the ASPSP.

Start the authorisation process for a payment initiation

Create an authorisation sub-resource and start the authorisation process. The message might in addition transmit authentication and authorisation related data.

This method is iterated n times for a n times SCA authorisation in a corporate context, each creating an own authorisation sub-endpoint for the corresponding PSU authorising the transaction.

The ASPSP might make the usage of this access method unnecessary in case of only one SCA process needed, since the related authorisation resource might be automatically created by the ASPSP after the submission of the payment data with the first POST payments/{payment-product} call.

The start authorisation process is a process which is needed for creating a new authorisation or cancellation sub-resource.

This applies in the following scenarios:

  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment initiation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms:
    • 'startAuthorisationWithPsuIdentfication'
    • 'startAuthorisationWithPsuAuthentication'
    • 'startAuthorisationWithEncryptedPsuAuthentication'
    • 'startAuthorisationWithAuthentciationMethodSelection'
  • The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding Payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
  • The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
  • The signing basket needs to be authorised yet.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Get payment initiation authorisation sub-resources request

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.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "authorisationIds":
    [
    ]
}

Read the SCA status of the payment authorisation

This method returns the SCA status of a payment initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU data for payment initiation

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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Start the authorisation process for the cancellation of the addressed payment

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 a 'startAuthorisation' hyperlink in the preceding payment initiation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms:
    • 'startAuthorisationWithPsuIdentfication'
    • 'startAuthorisationWithPsuAuthentication'
    • 'startAuthorisationWithAuthentciationMethodSelection'
  • The related payment initiation cannot yet be executed since a multilevel SCA is mandated.
  • The ASPSP has indicated with a 'startAuthorisation' hyperlink in the preceding payment cancellation response that an explicit start of the authorisation process is needed by the TPP. The 'startAuthorisation' hyperlink can transport more information about data which needs to be uploaded by using the extended forms as indicated above.
  • The related payment cancellation request cannot be applied yet since a multilevel SCA is mandate for executing the cancellation.
  • The signing basket needs to be authorised yet.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Read the SCA status of the payment cancellation's authorisation

This method returns the SCA status of a payment initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU data for payment initiation cancellation

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.

There are several possible update PSU data requests in the context of a cancellation authorisation within the 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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

payment-service
required
string
Enum: "payments" "bulk-payments" "periodic-payments"

Payment service:

Possible values are:

  • payments
  • bulk-payments
  • periodic-payments
payment-product
required
string
Enum: "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"

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.

The following payment products are supported:

  • 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 specificic scheme variants.

paymentId
required
string (paymentId)
Example: 1234-wertiq-983

Resource identification of the generated payment initiation resource.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/{payment-service}/{payment-product}/{paymentId}/cancellation-authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Start the authorisation process for a consent

Create an authorisation sub-resource and start the authorisation process of a consent. The message might in addition transmit authentication and authorisation related data.

his 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.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

TPP-Redirect-Preferred
boolean

If it equals "true", the TPP prefers a redirect over an embedded SCA approach. If it equals "false", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.

TPP-Redirect-URI
string <uri>

URI of the TPP, where the transaction flow shall be redirected to after a Redirect.

Mandated for the Redirect SCA Approach, specifically when TPP-Redirect-Preferred equals "true". It is recommended to always use this header field.

Remark for Future: This field might be changed to mandatory in the next version of the specification.

TPP-Nok-Redirect-URI
string <uri>

If this URI is contained, the TPP is asking to redirect the transaction flow to this address instead of the TPP-Redirect-URI in case of a negative result of the redirect SCA method. This might be ignored by the ASPSP.

TPP-Notification-URI
string

URI for the Endpoint of the TPP-API to which the status of the payment initiation should be sent. This header field may by ignored by the ASPSP.

For security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is secured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:

URIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by the eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate. Please note that in case of example-TPP.com as certificate entry TPP- Notification-URI like www.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications or notifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction- id/notifications would be compliant.

Wildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may respond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.

TPP-Notification-Content-Preferred
string

The string has the form

status=X1, ..., Xn

where Xi is one of the constants SCA, PROCESS, LAST and where constants are not repeated. The usage of the constants supports the of following semantics:

SCA: A notification on every change of the scaStatus attribute for all related authorisation processes is preferred by the TPP.

PROCESS: A notification on all changes of consentStatus or transactionStatus attributes is preferred by the TPP. LAST: Only a notification on the last consentStatus or transactionStatus as available in the XS2A interface is preferred by the TPP.

This header field may be ignored, if the ASPSP does not support resource notification services for the related TPP.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
any

Responses

201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

post/api/org/{organisation}/v1/consents/{consentId}/authorisations

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
null

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "received",
  • "authorisationId": "123auth456",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Read the SCA status of the consent authorisation

This method returns the SCA status of a consent initiation's authorisation sub-resource.

Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

get/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "scaStatus": "psuAuthenticated",
  • "trustedBeneficiaryFlag": false
}

Update PSU Data for consents

This method update PSU data on the consents 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.

This methods updates PSU data on the cancellation authorisation resource if needed.

There are several possible update PSU data requests in the context of a consent request if 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.

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 needs 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 needs a reduced header, therefore many optional elements are not present. Maybe in a later version the access path will change.
Authorizations:
path Parameters
organisation
required
string (organisation)
Example: bankio

This identification is denoting the addressed bankIO organisation. The organisation is the "name" attribute of the organisation structure. Its value is constant at least throughout the lifecycle of a given consent.

consentId
required
string (consentId)

ID of the corresponding consent object as returned by an account information consent request.

authorisationId
required
string (authorisationId)
Example: 123auth456

Resource identification of the related SCA.

header Parameters
X-Request-ID
required
string <uuid>
Example: '99391c7e-ad88-49ec-a2ad-99ddcb1f7721'

ID of the request, unique to the call, as determined by the initiating party.

Digest
string
Example: 'SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A='

Is contained if and only if the "Signature" element is contained in the header of the request.

Signature
string
Example: 'keyId="SN=9FA1,CA=CN=D-TRUST CA 2-1 2015,O=D-Trust GmbH,C=DE",algorithm="rsa-sha256", headers="Digest X-Request-ID PSU-ID TPP-Redirect-URI Date", signature="Base64(RSA-SHA256(signing string))"'

A signature of the request by the TPP on application level. This might be mandated by ASPSP.

TPP-Signature-Certificate
string <byte>

The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained.

PSU-ID
string
Example: 'PSU-1234'

Client ID of the PSU in the ASPSP client interface.

Might be mandated in the ASPSP's documentation.

It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match, according to ASPSP documentation.

PSU-ID-Type
string

Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.

In this case, the mean and use are then defined in the ASPSP’s documentation.

PSU-Corporate-ID
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-Corporate-ID-Type
string

Might be mandated in the ASPSP's documentation. Only used in a corporate context.

PSU-IP-Address
string <ipv4>
Example: '192.168.8.78'

The forwarded IP Address header field consists of the corresponding HTTP request IP Address field between PSU and TPP. It shall be contained if and only if this request was actively initiated by the PSU.

PSU-IP-Port
string
Example: 1234

The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.

PSU-Accept
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Charset
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Encoding
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-Accept-Language
string

The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.

PSU-User-Agent
string

The forwarded Agent header field of the HTTP request between PSU and TPP, if available.

PSU-Http-Method
string
Enum: "GET" "POST" "PUT" "PATCH" "DELETE"

HTTP method used at the PSU ? TPP interface, if available. Valid values are:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
PSU-Device-ID
string <uuid>
Example: '99435c7e-ad88-49ec-a2ad-99ddcb1f5555'

UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.

PSU-Geo-Location
string GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6}
Example: 'GEO:52.506931;13.144558'

The forwarded Geo Location of the corresponding http request between PSU and TPP if available.

Request Body schema: application/json
One of
  • any
  • updatePsuAuthentication
  • selectPsuAuthenticationMethod
  • transactionAuthorisation
  • authorisationConfirmation
any

Responses

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not found

405

Method Not Allowed

406

Not Acceptable

408

Request Timeout

409

Conflict

415

Unsupported Media Type

429

Too Many Requests

500

Internal Server Error

503

Service Unavailable

put/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

PSD2 server

https://ob.bankio.ro/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

UK PSD2 server

https://ob.bankio.co.uk/api/org/{organisation}/v1/consents/{consentId}/authorisations/{authorisationId}

Request samples

Content type
application/json
Example
Copy
Expand all Collapse all
{ }

Response samples

Content type
application/json
Example

Response of an update PSU identification for a payment initiation request for the decoupled approach.

Copy
Expand all Collapse all
{
  • "scatransactionStatus": "psuIdentified",
  • "psuMessage": "Please use your BankApp for transaction Authorisation.",
  • "_links":
    {
    }
}

Authentication

Authenticate a user

Start a session with bankIO Connect and authenticate a user.

Example:

GET /api/auth/authorize?client_id=<your-client-id>&response_type=code+id_token&scope=openid+email&redirect_uri=<your-redirect-uri>&state=0123456789

This endpoint is compatible with OpenID Connect and also supports the POST method, in which case the parameters are passed as a form post.

See also:

Authorizations:
query Parameters
client_id
required
string

A client ID obtained from the Dashboard.

response_type
required
string

The OIDC response type to use for this authentication flow. Valid choices are code, id_token, token, token id_token, code id_token code token and code token id_token, but a client can be configured with a more restricted set.

scope
required
string

The space-separated identity claims to request from the end-user. Always include openid as a scope for compatibility with OIDC.

redirect_uri
required
string

The location to redirect to after (un)successful authentication. See OIDC for the parameters passed in the query string (response_mode=query) or as fragments (response_mode=fragment). Unless the client is in test-mode this must be one of the registered redirect URLs.

state
required
string

An opaque string that will be passed back to the redirect URL and therefore can be used to communicate client side state and prevent CSRF attacks.

response_mode
string

Whether to append parameters to the redirect URL in the query string (query) or as fragments (fragment). This option usually has a sensible default for each of the response types.

nonce
string

An nonce provided by the client (and opaque to bankIO Connect) that will be included in any ID Token generated for this session. Clients should use the nonce to mitigate replay attacks.

display
string
Default: "page"

The authentication display mode, which can be one of page, popup or modal. Defaults to page.

prompt
string
Default: "login"

Space-delimited, case sensitive list of ASCII string values that specifies whether the Authorization Server prompts the End-User for reauthentication and consent. The supported values are: none, login, consent. If consent the end-user is asked to (re)confirm what claims they share. Use none to check for an active session.

max_age
integer
Default: 0

Specifies the allowable elapsed time in seconds since the last time the end-user was actively authenticated.

ui_locales
string

Specifies the preferred language to use on the authorization page, as a space-separated list of BCP47 language tags. Ignored at the moment.

Responses

302

A successful or erroneous authentication response.

303

Sign in with bankIO page, popup or modal.

get/api/auth/authorize

PSD2 server

https://ob.bankio.ro/api/auth/authorize

UK PSD2 server

https://ob.bankio.co.uk/api/auth/authorize

Request Access Tokens

This endpoint allows requesting an access token following one of the flows below:- Authorization Code (exchange code for access token)- Client Credentials (2-legged, there is no resource owner information)- Resource Owner Password Credentials (2-legged, client provides resource owner name and password)- Refresh Token (exchange refresh token for a new access code). The table below indicates the required parameters for each specific grant_type options. Empty cells indicate a parameter is ignored for that specific grant type. Client authentication:- Confidential clients should authenticate using HTTP Basic Authentication. Alternatively, they may post their client_id and client_secret information as a formData parameter. - Public clients should send their client_id as formData parameter.| grant_type | code | client_credentials | password | refresh_token ||----------------------|------------|--------------------|-------------|---------------|| client_id | required* | required* | required* | required* || client_secret | required* | required* | required* | required* || code | required | | | || redirect_uri | required | | | || scope | | optional | optional | || refresh_token | | | | required |The implicit grant requests, see /oauth2/authorize. See also:

Authorizations:
Request Body schema: application/x-www-form-urlencoded
grant_type
required
string
Enum: "authorization_code" "client_credentials" "refresh_token"

Type of grant.

client_id
string

Application client ID, may be provided either within formData or using HTTP Basic Authentication.

client_secret
string <password>

Application secret, may be provided either within formData or using HTTP Basic Authentication.

code
string

Authorization code provided by the /oauth2/authorize endpoint.

redirect_uri
string

Required only if the redirect_uri parameter was included in the authorization request /oauth2/authorize. Their values MUST be identical.

scope
string

Scope being requested.

refresh_token
string

The refresh token that the client wants to exchange for a new access token (refresh_token grant_type).

Responses

200

Token response

400

OAuth 2.0 error response

401

OAuth 2.0 error response

post/api/auth/token

PSD2 server

https://ob.bankio.ro/api/auth/token

UK PSD2 server

https://ob.bankio.co.uk/api/auth/token

Response samples

Content type
No sample

Retrieve user profile

Use this endpoint to retrieve a user's profile in case you've not already obtained enough details from the ID Token via the Token Endpoint. See also:

Authorizations:
oAuth2SSO (openidemailoffline_access)

Responses

200

UserInfo response

401

OAuth 2.0 error response

default

OAuth 2.0 error response

get/api/auth/me

PSD2 server

https://ob.bankio.ro/api/auth/me

UK PSD2 server

https://ob.bankio.co.uk/api/auth/me

Response samples

Content type
No sample

Client Management

View a client

Retrieve the configuration of a previously registered client.

See also:

path Parameters
client_id
required
string

Client identifier

Responses

200

Client found

default

OAuth 2.0 error response

get/api/auth/register/{client_id}

PSD2 server

https://ob.bankio.ro/api/auth/register/{client_id}

UK PSD2 server

https://ob.bankio.co.uk/api/auth/register/{client_id}

Response samples

Content type
Copy
Expand all Collapse all
{
  • "client_id": "string",
  • "redirect_uris":
    [
    ],
  • "response_types":
    [
    ],
  • "grant_types":
    [
    ],
  • "application_type": "string",
  • "contacts":
    [
    ],
  • "client_name": "string",
  • "logo_uri": "string",
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "default_max_age": 0,
  • "default_scopes":
    [
    ]
}

Update a client

Update the configuration of a previously registered client.

See also:

path Parameters
client_id
required
string

Client identifier

Request Body schema:

Client Object

client_id
string
redirect_uris
Array of strings
response_types
Array of strings
grant_types
Array of strings
application_type
string
contacts
Array of strings
client_name
required
string
logo_uri
string
client_uri
required
string
policy_uri
string
tos_uri
string
default_max_age
integer <int64>
default_scopes
Array of strings

Responses

200

Client updated

default

Problem Detail error response

put/api/auth/register/{client_id}

PSD2 server

https://ob.bankio.ro/api/auth/register/{client_id}

UK PSD2 server

https://ob.bankio.co.uk/api/auth/register/{client_id}

Request samples

Content type
Copy
Expand all Collapse all
{
  • "client_id": "string",
  • "redirect_uris":
    [
    ],
  • "response_types":
    [
    ],
  • "grant_types":
    [
    ],
  • "application_type": "string",
  • "contacts":
    [
    ],
  • "client_name": "string",
  • "logo_uri": "string",
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "default_max_age": 0,
  • "default_scopes":
    [
    ]
}

Response samples

Content type
Copy
Expand all Collapse all
{
  • "client_id": "string",
  • "redirect_uris":
    [
    ],
  • "response_types":
    [
    ],
  • "grant_types":
    [
    ],
  • "application_type": "string",
  • "contacts":
    [
    ],
  • "client_name": "string",
  • "logo_uri": "string",
  • "client_uri": "string",
  • "policy_uri": "string",
  • "tos_uri": "string",
  • "default_max_age": 0,
  • "default_scopes":
    [
    ]
}

Delete a client

Delete a previously registered client.

path Parameters
client_id
required
string

Client identifier

Responses

204

Client deleted

default

Problem Detail error response

delete/api/auth/register/{client_id}

PSD2 server

https://ob.bankio.ro/api/auth/register/{client_id}

UK PSD2 server

https://ob.bankio.co.uk/api/auth/register/{client_id}

Response samples

Content type
No sample