Summary

Nikulipe provides access to E-Money bank accounts of its Clients over the Open Banking API. This API is offered as part of PSD2 regulation.

This API document is based on the NextGenPSD2 Framework Version 1.3.6 (with errata) created by The Berlin Group and was modified to match Nikulipe's API implementation.

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 supported by Nikulipe UAB are:

  • Redirect SCA Approach

    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 a JSON body.

There are the following payment products:

  • Payment products with payment information in JSON format:
    • sepa-credit-transfers

Nikulipe only offers single level SCA Processes

Authorizations:
path Parameters
payment-product
required
string
Value: "sepa-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
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.

PSU-ID-Type
string

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

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

PSU-Corporate-ID
string

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

PSU-Corporate-ID-Type
string

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

Consent-ID
string (consentId)

This data element may be contained, if the payment initiation transaction is part of a session, i.e. combined AIS/PIS service. This then contains the consentId of the related AIS consent, which was performed prior to this payment initiation.

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-URI
required
string <uri>

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

Mandated for the Redirect SCA Approach.

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-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: application/json

JSON request body for a payment inition request message.

There are the following payment-products supported:

  • "sepa-credit-transfers" with JSON-Body

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

One of
  • paymentInitiation_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
  • 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
  • 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/v1/payments/{payment-product}

Nikulipe PSD2 live server

https://oba.nikulipe.com/psd2/v1/payments/{payment-product}

Nikulipe PSD2 test server

https://sandbox-oba.nikulipe.com/psd2/v1/payments/{payment-product}

Request samples

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

Response samples

Content type
application/json

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
payment-product
required
string
Value: "sepa-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
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/v1/payments/{payment-product}/{paymentId}

Nikulipe PSD2 live server

https://oba.nikulipe.com/psd2/v1/payments/{payment-product}/{paymentId}

Nikulipe PSD2 test server

https://sandbox-oba.nikulipe.com/psd2/v1/payments/{payment-product}/{paymentId}

Response samples

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

Payment initiation status request

Check the transaction status of a payment initiation.

Authorizations:
path Parameters
payment-product
required
string
Value: "sepa-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
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 initiat