OpenFinance
Development Portal

openFinance API Framework XS2A API as PSD2 Interface Implementation Guidelines - Payment Initiation Service (2.3)

The Berlin Group - A European Standards Initiative | info@: info@berlin-group.org | URL: https://www.berlin-group.org/

License: Creative Commons Attribution 4.0 International Public License

The payment initiation flow depends heavily on the SCA approach implemented by the ASPSP. The most complex flow is the flow for the Embedded SCA Approach, which further differs on whether there are various authentication methods available for the PSU. In the following, the different API flows are provided as an overview for these different scenarios. Remark: The flows do not always cover all variances or complexities of the implementation and are exemplary flows.

Get payment

GET /v2/{payment-service}/{payment-product}/{paymentId}

Reads the content of a payment initiation. See "XS2A API as PSD2 Interface Implementation Guidelines ", section "Get Payment Request".

Parameter Type Description
payment-service string , required

Payment service: Possible values are: * payments * bulk-payments * periodic-payments

Allowed values: payments, bulk-payments, periodic-payments

Example: payments

payment-product string , required

The payment product, under which the payment under paymentId has been initiated. It shall be checked by the ASPSP, if the payment-product is matching the payment initiation addressed by paymentId.

Allowed values: 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, pain.001-proprietary-credit-transfers

Example: sepa-credit-transfers

paymentId string , required

Resource identification of the related payment.

Example: fe7552ee-0728-4bd1-baf7-94942331e478

Allowed length: max: 70

Header Type Description
Digest string , optional

Integrity hash of the request body in the form SHA-256=<base64>. For an empty body, use the hash of an empty string. See Signing requests for how the Digest and signature are built.

Example: SHA-256=hl1/Eps8BEQW58FJhDApwJXjGY4nr1ArGDHIT25vq6A=

x-jws-signature string , optional

Detached JSON Web Signature over the signed request headers and body. See Signing requests for how it is constructed.

X-Request-ID string , required

Unique ID of the request, set by the initiating party and echoed back in the response.

Example: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721

Format: uuid

Select a status code to see the structure and an example of the response.

Field Type Description
creditor object , optional

Party to which an amount of money is due.

chargeBearer string , optional

Specifies which party/parties will bear the charges associated with the processing of the payment transaction.

Allowed values: DEBT, CRED, SHAR, SLEV

creditorAgent object , optional

Financial institution servicing an account for the creditor.

paymentMethod string , optional

Specifies the means of payment that will be used to move the amount of money. Usage: Only used for cross-border transactions. If no paymentMethod is explicitly stated, paymentMethod will be interpreted as **TRF** (Credit Transfer).

Allowed values: TRF, CHK

chargesAccount object , optional

Account used to process charges asso-ciated with a transaction.

ultimateDebtor object , optional

Ultimate party that owes an amount of money to the (ultimate) creditor. Restriction to the schema are applied depending on the product.

creditorAccount object , required

Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.

instructedAmount object , required

Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.

ultimateCreditor object , optional

Ultimate party to which an amount of money is due.

paymentIdentification object , optional

Set of elements used to reference a payment instruction.

remittanceInformationStructured array[object] , optional

Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in a structured form.

remittanceInformationUnstructured array[string] , optional

Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in an unstructured form.

Example: ["{\"Ref Number Merchant\"}"]

debtorAccount object , optional

Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.

apiClientMessages array[object] , optional

Errors and warnings describing why the request failed. See Errors for the message format.

transactionStatus string , optional

ISO 20022 transaction status code.

Allowed values: ACCC, ACCP, ACSC, ACSP, ACTC, ACWC, ACWP, RCVD, PDNG, RJCT, CANC, ACFC, PATC, PART, PRES, RVCM, RVNC, RCVC

Example: ACCC