Payments API Flow

1. Initiate single payment

Your application connects to the bank and creates a payment resource, by making a POST /payments/payment-product

The bank platform will perform validations on technical level (regarding compatibility with Berlin Group Specifications) and functional level (allowed information, e.g. supported currencies).

If some validations fail, then payment initiation fails and an error message is provided.

If everything is ok, the bank responds with an identifier for the resource (paymentId), status RCVD and a redirect URL link (which can be used by the customer to authenticate and authorize the payment) in the field _links.scaRedirect. For redirection to the URL, the response header parameter ASPSP-SCA-Approach will be returned with value REDIRECT.

2. Authorize Initiated Payment 

You should forward the user to the scaRedirect URL in order to authorize the payment. 

Some validations are performed before, during and after the PSU authenticates itself. 

If validations fail, the PSU will be informed into the SCA page and the flow will be redirected back to your TPP-Nok-Redirect-URI, if such URL was sent by you in the payment initiation message. 

If validations passes, the PSU will see the payment detail screen and will have the option to authorize the payment. 

If PSU will fail to authorize the payment in a predefined time or if PSU will cancel the transaction, the flow will be redirected back to your TPP-Nok-Redirect-URI, if such URL was sent by you in the payment initiation message. 

If the PSU authorizes the payment, the flow will be redirected back to your TPP-Redirect-URI, information sent by you in the payment initiation message. 

3. Get Payment details 

You can check the status of the initiated payment (with the paymentId) and get the payment details (as submitted in payment initiation). This is carried out by making a GET /payments/payment-product/{paymentId}/

4. Get Payment status

You can check the status of the initiated payment (with the paymentId). This is carried out by making a GET /payments/payment-product/{paymentId}/status request to the initiated payments resource.

Payment status code indicates the status of a single payment transaction and is according to ISO 20022 Payment status codes table.

RCVD [Received] - Payment received and successfully validated (regarding compatibility with Berlin Group Specifications)

ACTC [AcceptedTechnicalValidation] - Payment successfully authorized by PSU

ACSC [AcceptedSettlementCompleted] - Settlement on the debtor’s account has been completed

RJCT [Rejected] - Payment initiation has been rejected