--- swagger: "2.0" info: version: 1.0.5 title: PSD2 PIS description: This set of methods involves the implementation of a PSD2 compliant API based on Berlin Group XS2A Framework. contact: name: Piraeus Bank rAPIdLink url: https://rapidlink.piraeusbank.gr email: rapidlink@piraeusbank.gr x-ibm-name: PSD2_PIS termsOfService: Terms and Conditions license: name: Terms and Conditions of Use url: https://rapidlink.piraeusbank.gr/terms basePath: /psd2/pis schemes: - https consumes: - application/json produces: - application/json paths: /v1/{payment-service}/{payment-product}: post: description: Initiates a payment at the ASPSP, sending information via either a JSON body or an pain.001 body, depending on the payment product and the payment service in the path. summary: initiatePayment tags: - Payment Initiation Service (PIS) operationId: V1ByPaymentServiceAndPaymentProductPost deprecated: false produces: - application/json consumes: - application/json - application/x-www-form-urlencoded parameters: - name: payment-service in: path required: true enum: - payments - bulk-payments - periodic-payments type: string description: |- Payment service: Possible values are: * payments * bulk-payments * periodic-payments - name: payment-product in: path required: true 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 type: string description: 'The addressed payment product endpoint: *sepa-credit-transfers *instant-sepa-credit-transfers *cross-border-credit-transfers' - name: X-Request-ID in: header required: true type: string format: uuid description: ID of the request, unique to the call, as determined by the initiating party. - name: PSU-IP-Address in: header required: true type: string description: The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. - name: Digest in: header required: false type: string description: Is contained if and only if the "Signature" element is contained in the header of the request. - name: Signature in: header required: false type: string description: A signature of the request by the TPP on application level. This might be mandated by ASPSP. - name: TPP-Signature-Certificate in: header required: false type: string description: |- The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. - name: PSU-ID in: header required: false type: string description: |- Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. - name: PSU-ID-Type in: header required: false type: string description: Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. - name: PSU-Corporate-ID in: header required: false type: string description: Might be mandated in the ASPSP's documentation. Only used in a corporate context. - name: PSU-Corporate-ID-Type in: header required: false type: string description: Might be mandated in the ASPSP's documentation. Only used in a corporate context. - name: Consent-ID in: header required: false type: string description: |- 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. - name: TPP-Redirect-Preferred in: header required: false enum: - true - false type: string description: |- 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. - name: TPP-Redirect-URI in: header required: false type: string description: |- 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. - name: TPP-Nok-Redirect-URI in: header required: false type: string description: |- 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. - name: TPP-Explicit-Authorisation-Preferred in: header required: false enum: - true - false type: string description: |- 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. - name: TPP-Rejection-NoFunds-Preferred in: header required: false enum: - true - false type: string description: |- 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. - name: PSU-IP-Port in: header required: false type: string description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. - name: PSU-Accept in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Charset in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Encoding in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Language in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-User-Agent in: header required: false type: string description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available. - name: PSU-Http-Method in: header required: false enum: - GET - POST - PUT - PATCH - DELETE type: string description: |- HTTP method used at the PSU ? TPP interface, if available. Valid values are: * GET * POST * PUT * PATCH * DELETE - name: PSU-Device-ID in: header required: false type: string format: uuid description: |- UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID need to be unaltered until removal from device. - name: PSU-Geo-Location in: header required: false type: string pattern: GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6} description: The forwarded Geo Location of the corresponding http request between PSU and TPP if available. - name: xml_sct in: formData required: false type: string description: "" - name: json_standingorderType in: formData required: false type: string description: |- The body part 2 of a periodic payment initiation request containes the execution related informations of the periodic payment. - name: payment_initiation_body required: false in: body schema: $ref: '#/definitions/paymentInitiation_json' description: The request body for single payments responses: 201: description: Created schema: $ref: '#/definitions/paymentInitiationRequestResponse-201' headers: X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 Location: type: string ASPSP-SCA-Approach: type: string default: EMBEDDED 400: description: Bad Request schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed schema: $ref: '#/definitions/Error405_NG_PIS' 406: description: Not Acceptable 408: description: Request Timeout 409: description: Conflict schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsupported Media Type 429: description: Too Many Requests 503: description: Service Unavailable default: description: Internal Server Error parameters: - $ref: '#/parameters/Authorization' - $ref: '#/parameters/X-IBM-Client-Id' /v1/{payment-service}/{payment-product}/{paymentId}: get: description: Returns the content of a payment object summary: getPaymentInformation tags: - Payment Initiation Service (PIS) operationId: V1PaymentIdByPaymentServiceAndPaymentProductGet deprecated: false produces: - application/json parameters: - name: payment-service in: path required: true enum: - payments - bulk-payments - periodic-payments type: string description: |- Payment service: Possible values are: * payments * bulk-payments * periodic-payments - name: payment-product in: path required: true 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 type: string description: 'The addressed payment product endpoint: *sepa-credit-transfers *instant-sepa-credit-transfers *cross-border-credit-transfers' - name: paymentId in: path required: true type: string description: Resource identification of the generated payment initiation resource. - name: X-Request-ID in: header required: true type: string format: uuid description: ID of the request, unique to the call, as determined by the initiating party. - name: Digest in: header required: false type: string description: Is contained if and only if the "Signature" element is contained in the header of the request. - name: Signature in: header required: false type: string description: A signature of the request by the TPP on application level. This might be mandated by ASPSP. - name: TPP-Signature-Certificate in: header required: false type: string description: |- The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. - name: PSU-IP-Address in: header required: false type: string description: The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. - name: PSU-IP-Port in: header required: false type: string description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. - name: PSU-Accept in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Charset in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Encoding in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Language in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-User-Agent in: header required: false type: string description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available. - name: PSU-Http-Method in: header required: false enum: - GET - POST - PUT - PATCH - DELETE type: string description: |- HTTP method used at the PSU ? TPP interface, if available. Valid values are: * GET * POST * PUT * PATCH * DELETE - name: PSU-Device-ID in: header required: false type: string format: uuid description: |- UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID need to be unaltered until removal from device. - name: PSU-Geo-Location in: header required: false type: string pattern: GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6} description: The forwarded Geo Location of the corresponding http request between PSU and TPP if available. responses: 200: description: OK schema: $ref: '#/definitions/paymentInitiationWithStatusResponse' headers: X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 400: description: Bad Request schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed schema: $ref: '#/definitions/Error405_NG_PIS' 406: description: Not Acceptable 408: description: Request Timeout 409: description: Conflict schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsupported Media Type 429: description: Too Many Requests 503: description: Service Unavailable default: description: Internal Server Error delete: description: This method initiates the cancellation of a payment. summary: cancelPayment tags: - Payment Initiation Service (PIS) operationId: V1PaymentIdByPaymentServiceAndPaymentProductDelete deprecated: false produces: - application/json parameters: - name: payment-service in: path required: true enum: - payments - bulk-payments - periodic-payments type: string description: |- Payment service: Possible values are: * payments * bulk-payments * periodic-payments - name: payment-product in: path required: true 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 type: string description: 'The addressed payment product endpoint: *sepa-credit-transfers *instant-sepa-credit-transfers *cross-border-credit-transfers' - name: paymentId in: path required: true type: string description: Resource identification of the generated payment initiation resource. - name: X-Request-ID in: header required: true type: string format: uuid description: ID of the request, unique to the call, as determined by the initiating party. - name: Digest in: header required: false type: string description: Is contained if and only if the "Signature" element is contained in the header of the request. - name: Signature in: header required: false type: string description: A signature of the request by the TPP on application level. This might be mandated by ASPSP. - name: TPP-Signature-Certificate in: header required: false type: string description: |- The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. - name: PSU-IP-Address in: header required: false type: string description: The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. - name: PSU-IP-Port in: header required: false type: string description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. - name: PSU-Accept in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Charset in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Encoding in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Language in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-User-Agent in: header required: false type: string description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available. - name: PSU-Http-Method in: header required: false enum: - GET - POST - PUT - PATCH - DELETE type: string description: |- HTTP method used at the PSU ? TPP interface, if available. Valid values are: * GET * POST * PUT * PATCH * DELETE - name: PSU-Device-ID in: header required: false type: string format: uuid description: |- UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID need to be unaltered until removal from device. - name: PSU-Geo-Location in: header required: false type: string pattern: GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6} description: The forwarded Geo Location of the corresponding http request between PSU and TPP if available. responses: 202: description: No Content headers: X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/paymentInitiationCancelResponse-202' 400: description: Bad Request schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed schema: $ref: '#/definitions/Error405_NG_PIS_CANC' 406: description: Not Acceptable 408: description: Request Timeout 409: description: Conflict schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsupported Media Type 429: description: Too Many Requests 503: description: Service Unavailable default: description: Internal Server Error parameters: - $ref: '#/parameters/Authorization' - $ref: '#/parameters/X-IBM-Client-Id' /v1/{payment-service}/{payment-product}/{paymentId}/status: get: description: Check the transaction status of a payment initiation. summary: getPaymentInitiationStatus tags: - Payment Initiation Service (PIS) operationId: V1PaymentIdStatusByPaymentServiceAndPaymentProductGet deprecated: false produces: - application/json parameters: - name: payment-service in: path required: true enum: - payments - bulk-payments - periodic-payments type: string description: |- Payment service: Possible values are: * payments * bulk-payments * periodic-payments - name: payment-product in: path required: true 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 type: string description: 'The addressed payment product endpoint: *sepa-credit-transfers *instant-sepa-credit-transfers *cross-border-credit-transfers' - name: paymentId in: path required: true type: string description: Resource identification of the generated payment initiation resource. - name: X-Request-ID in: header required: true type: string format: uuid description: ID of the request, unique to the call, as determined by the initiating party. - name: Digest in: header required: false type: string description: Is contained if and only if the "Signature" element is contained in the header of the request. - name: Signature in: header required: false type: string description: A signature of the request by the TPP on application level. This might be mandated by ASPSP. - name: TPP-Signature-Certificate in: header required: false type: string description: |- The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. - name: PSU-IP-Address in: header required: false type: string description: The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. - name: PSU-IP-Port in: header required: false type: string description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. - name: PSU-Accept in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Charset in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Encoding in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Language in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-User-Agent in: header required: false type: string description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available. - name: PSU-Http-Method in: header required: false enum: - GET - POST - PUT - PATCH - DELETE type: string description: |- HTTP method used at the PSU ? TPP interface, if available. Valid values are: * GET * POST * PUT * PATCH * DELETE - name: PSU-Device-ID in: header required: false type: string format: uuid description: |- UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID need to be unaltered until removal from device. - name: PSU-Geo-Location in: header required: false type: string pattern: GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6} description: The forwarded Geo Location of the corresponding http request between PSU and TPP if available. responses: 200: description: OK schema: $ref: '#/definitions/paymentInitiationStatusResponse-200_json' headers: X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 400: description: Bad Request schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed schema: $ref: '#/definitions/Error405_NG_PIS' 406: description: Not Acceptable 408: description: Request Timeout 409: description: Conflict schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsupported Media Type 429: description: Too Many Requests 503: description: Service Unavailable default: description: Internal Server Error parameters: - $ref: '#/parameters/Authorization' - $ref: '#/parameters/X-IBM-Client-Id' /v1/{payment-service}/{payment-product}/{paymentId}/authorisations: post: description: 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 acorporate context, each creating an own authorisation sub-endpoint for the corresponding PSU authorising the transaction. summary: startPaymentAuthorisation tags: - Payment Initiation Service (PIS) operationId: V1PaymentIdAuthorisationsByPaymentServiceAndPaymentProductPost deprecated: false produces: - application/json parameters: - name: payment-service in: path required: true enum: - payments - bulk-payments - periodic-payments type: string description: |- Payment service: Possible values are: * payments * bulk-payments * periodic-payments - name: payment-product in: path required: true 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 type: string description: 'The addressed payment product endpoint: *sepa-credit-transfers *instant-sepa-credit-transfers *cross-border-credit-transfers' - name: paymentId in: path required: true type: string description: Resource identification of the generated payment initiation resource. - name: X-Request-ID in: header required: true type: string format: uuid description: ID of the request, unique to the call, as determined by the initiating party. - name: PSU-ID in: header required: false type: string description: |- Client ID of the PSU in the ASPSP client interface. Might be mandated in the ASPSP's documentation. Is not contained if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. - name: PSU-ID-Type in: header required: false type: string description: Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility. - name: PSU-Corporate-ID in: header required: false type: string description: Might be mandated in the ASPSP's documentation. Only used in a corporate context. - name: PSU-Corporate-ID-Type in: header required: false type: string description: Might be mandated in the ASPSP's documentation. Only used in a corporate context. - name: TPP-Redirect-Preferred in: header required: false enum: - true - false type: string description: |- 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. - name: TPP-Redirect-URI in: header required: false type: string description: |- 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. - name: TPP-Nok-Redirect-URI in: header required: false type: string description: |- 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. - name: Digest in: header required: false type: string description: Is contained if and only if the "Signature" element is contained in the header of the request. - name: Signature in: header required: false type: string description: A signature of the request by the TPP on application level. This might be mandated by ASPSP. - name: TPP-Signature-Certificate in: header required: false type: string description: |- The certificate used for signing the request, in base64 encoding. Must be contained if a signature is contained. - name: PSU-IP-Address in: header required: false type: string description: The forwarded IP Address header field consists of the corresponding http request IP Address field between PSU and TPP. - name: PSU-IP-Port in: header required: false type: string description: The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available. - name: PSU-Accept in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Charset in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Encoding in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-Accept-Language in: header required: false type: string description: The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available. - name: PSU-User-Agent in: header required: false type: string description: The forwarded Agent header field of the HTTP request between PSU and TPP, if available. - name: PSU-Http-Method in: header required: false enum: - GET - POST - PUT - PATCH - DELETE type: string description: |- HTTP method used at the PSU ? TPP interface, if available. Valid values are: * GET * POST * PUT * PATCH * DELETE - name: PSU-Device-ID in: header required: false type: string format: uuid description: |- UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID need to be unaltered until removal from device. - name: PSU-Geo-Location in: header required: false type: string pattern: GEO:-?[0-9]{1,2}\.[0-9]{6};-?[0-9]{1,3}\.[0-9]{6} description: The forwarded Geo Location of the corresponding http request between PSU and TPP if available. - name: body in: body required: false description: "" schema: $ref: '#/definitions/transactionAuthorisation' responses: 201: description: Created schema: $ref: '#/definitions/paymentInitiationRequestResponse-201' headers: X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 ASPSP-SCA-Approach: type: string default: EMBEDDED 400: description: Bad Request schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed schema: $ref: '#/definitions/Error405_NG_PIS' 406: description: Not Acceptable 408: description: Request Timeout 409: description: Conflict schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsupported Media Type 429: description: Too Many Requests 503: description: Service Unavailable default: description: Internal Server Error parameters: - $ref: '#/parameters/Authorization' - $ref: '#/parameters/X-IBM-Client-Id' definitions: transactionStatus: description: |- The transaction status is filled with codes of the ISO 20022 data table: - 'ACCC' (AcceptedSettlementCompleted): Settlement on the creditor's account has been completed. - 'ACCP' (AcceptedCustomerProfile): Preceding check of technical validation was successful. Customer profile check was also successful. - 'ACSC' (AcceptedSettlementCompleted): Settlement on the debtor's account has been completed. This can be used by the first agent to report to the debtor that the transaction has been completed and is provided for transaction status reasons, not for financial information. It can only be used after bilateral agreement. - 'ACSP' (AcceptedSettlementInProcess): All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution. - 'ACTC' (AcceptedTechnicalValidation): Authentication and syntactical and semantic validation are successful. - 'ACWC' (AcceptedWithChange): Instruction is accepted but a change will be made, such as date or remittance not sent. - 'ACWP' (AcceptedWithoutPosting): Payment instruction included in the credit transfer is accepted without being posted to the creditor customer's account. - 'RCVD' (Received): Payment initiation has been received by the receiving agent. - 'PDNG' (Pending): Payment initiation or individual transaction included in the payment initiation is pending. Further checks and status update will be performed. - 'RJCT' (Rejected): Payment initiation or individual transaction included in the payment initiation has been rejected. - 'CANC' (Cancelled): Payment initiation has been cancelled before execution. This code is accepted as new code by ISO20022. - 'ACFC' (AcceptedFundsChecked): Preceding check of technical validation and customer profile was successful and an automatic funds check was positive. This code is accepted as new code by ISO20022. - 'PATC' (PartiallyAcceptedTechnical): Correct The payment initiation needs multiple authentications, where some but not yet all have been performed. Syntactical and semantic validations are successful. This code is accepted as new code by ISO20022. - 'PART' (PartiallyAccepted): A number of transactions have been accepted, whereas another number of transactions have not yet achieved 'accepted' status. This code may be used only in case of bulk payments. It is only used in a situation where all mandated authorisations have been applied, but some payments have been rejected. example: ACCC type: string enum: - ACCC - ACCP - ACSC - ACSP - ACTC - ACWC - ACWP - RCVD - PDNG - RJCT - CANC - ACFC - PATC - PART scaStatus: description: |- This data element is containing information about the status of the SCA method applied. The following codes are defined for this data type. - 'received': An authorisation or cancellation-authorisation resource has been created successfully. - 'psuIdentified': The PSU related to the authorisation or cancellation-authorisation resource has been identified. - 'psuAuthenticated': The PSU related to the authorisation or cancellation-authorisation resource has been identified and authenticated e.g. by a password or by an access token. - 'scaMethodSelected': The PSU/TPP has selected the related SCA routine. If the SCA method is chosen implicitly since only one SCA method is available, then this is the first status to be reported instead of 'received'. - 'started': The addressed SCA routine has been started. - 'finalised': The SCA routine has been finalised successfully. - 'failed': The SCA routine failed. - 'exempted': SCA was exempted for the related transaction, the related authorisation is successful. example: received type: string enum: - received - psuIdentified - psuAuthenticated - scaMethodSelected - started - finalised - failed - exempted authenticationObject: description: Authentication Object type: object properties: authenticationType: $ref: '#/definitions/authenticationType' authenticationVersion: description: |- Depending on the "authenticationType". This version can be used by differentiating authentication tools used within performing OTP generation in the same authentication type. This version can be referred to in the ASPSP?s documentation. type: string authenticationMethodId: description: An identification provided by the ASPSP for the later identification of the authentication method selection. example: myAuthenticationID type: string maxLength: 35 name: description: |- This is the name of the authentication method defined by the PSU in the Online Banking frontend of the ASPSP. Alternatively this could be a description provided by the ASPSP like "SMS OTP on phone +49160 xxxxx 28". This name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available. example: SMS OTP on phone +49160 xxxxx 28 type: string explanation: description: Detailed information about the SCA method for the PSU. example: Detailed information about the SCA method for the PSU. type: string required: - authenticationType - authenticationMethodId authenticationType: description: |- Type of the authentication method. Valid values: - 'SMS_OTP': An SCA method, where an OTP linked to the transaction to be authorised is sent to the PSU through a SMS channel. - 'CHIP_OTP': An SCA method, where an OTP is generated by a chip card, e.g. an TOP derived from an EMV cryptogram. To contact the card, the PSU normally needs a (handheld) device. With this device, the PSU either reads the challenging data through a visual interface like flickering or the PSU types in the challenge through the device key pad. The device then derives an OTP from the challenge data and displays the OTP to the PSU. - 'PHOTO_OTP': An SCA method, where the challenge is a QR code or similar encoded visual data which can be read in by a consumer device or specific mobile app. The device resp. the specific app than derives an OTP from the visual challenge data and displays the OTP to the PSU. - 'PUSH_OTP': An OTP is pushed to a dedicated authentication APP and displayed to the PSU. example: SMS_OTP type: string enum: - SMS_OTP - CHIP_OTP - PHOTO_OTP - PUSH_OTP challengeData: description: It is contained in addition to the data element 'chosenScaMethod' if challenge data is needed for SCA. In rare cases this attribute is also used in the context of the 'startAuthorisationWithPsuAuthentication' link. type: object properties: image: description: |- PNG data (max. 512 kilobyte) to be displayed to the PSU, Base64 encoding, cp. [RFC4648]. This attribute is used only, when PHOTO_OTP or CHIP_OTP is the selected SCA method. type: string data: description: String challenge data type: string imageLink: description: A link where the ASPSP will provides the challenge image for the TPP. type: string otpMaxLength: description: The maximal length for the OTP to be typed in by the PSU. type: integer format: int32 otpFormat: $ref: '#/definitions/OtpFormat' additionalInformation: description: |- Additional explanation for the PSU to explain e.g. fallback mechanism for the chosen SCA method. The TPP is obliged to show this to the PSU. type: string hrefType: description: Link to a resource type: object properties: href: description: Link to a resource example: /v1/payments/sepa-credit-transfers/1234-wertiq-983 type: string accountReference: description: |- 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). type: object properties: iban: description: IBAN of an account example: FR7612345987650123456789014 type: string pattern: '[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}' bban: description: |- Basic Bank Account Number (BBAN) Identifier This data element can be used in the body of the Consent Request Message for retrieving Account access Consent from this Account. This data elements is used for payment Accounts which have no IBAN. ISO20022: Basic Bank Account Number (BBAN). Identifier used nationally by financial institutions, i.e., in individual countries, generally as part of a National Account Numbering Scheme(s), which uniquely identifies the account of a customer. example: BARC12345612345678 type: string pattern: '[a-zA-Z0-9]{1,30}' pan: description: Primary Account Number according to ISO/IEC 7812. example: 5409050000000000 type: string maxLength: 35 maskedPan: description: Masked Primary Account Number example: 123456xxxxxx1234 type: string maxLength: 35 msisdn: description: Mobile phone number. example: +49 170 1234567 type: string maxLength: 35 currency: description: ISO 4217 Alpha 3 currency code example: EUR type: string pattern: '[A-Z]{3}' address: example: street: rue blue buildingnNumber: 89 city: Paris postalCode: 75000 country: FR type: object properties: street: type: string maxLength: 70 buildingNumber: type: string city: type: string postalCode: type: string country: description: ISO 3166 ALPHA2 country code example: SE type: string pattern: '[A-Z]{2}' required: - country description: Object containing information about a specific address amount: example: currency: EUR amount: 123 type: object properties: currency: description: ISO 4217 Alpha 3 currency code example: EUR type: string pattern: '[A-Z]{3}' amount: description: |- The amount given with fractional digits, where fractions must be compliant to the currency definition. Up to 14 significant figures. Negative amounts are signed by minus. The decimal separator is a dot. **Example:** Valid representations for EUR with up to two decimals are: * 1056 * 5768.2 * -1.50 * 5877.78 example: 5877.780000 type: string pattern: -?[0-9]{1,14}(\.[0-9]{1,3})? required: - currency - amount description: Object describing an amount as a combination of its value and currency code paymentInitiation_json: description: |- Generic Body for a payment initiation via JSON. This generic JSON body can be used to represent valid payment initiations for the following JSON based payment product: * sepa-credit-transfers * instant-sepa-credit-transfers * target-2-payments * cross-border-credit-transfers type: object properties: endToEndIdentification: type: string maxLength: 35 debtorAccount: $ref: '#/definitions/accountReference' instructedAmount: $ref: '#/definitions/amount' creditorAccount: $ref: '#/definitions/accountReference' creditorAgent: description: BICFI example: AAAADEBBXXX type: string pattern: '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}' creditorAgentName: description: Creditor Agent Name example: Creditor Agent Name type: string maxLength: 70 creditorName: description: Creditor Name example: Creditor Name type: string maxLength: 70 creditorAddress: $ref: '#/definitions/address' remittanceInformationUnstructured: description: Unstructured remittance information example: Ref Number Merchant type: string maxLength: 140 required: - debtorAccount - instructedAmount - creditorAccount - creditorName transactionAuthorisation: description: Content of the body of a Transaction Authorisation Request type: object properties: scaAuthenticationData: description: |- SCA authentication data, depending on the chosen authentication method. If the data is binary, then it is base64 encoded. type: string required: - scaAuthenticationData paymentInitiationStatusResponse-200_json: description: Body of the response for a successful payment initiation status request in case of an JSON based endpoint. type: object properties: transactionStatus: $ref: '#/definitions/transactionStatus' required: - transactionStatus paymentInitiationRequestResponse-201: description: Body of the response for a successful payment initiation request. type: object properties: transactionStatus: $ref: '#/definitions/transactionStatus' paymentId: description: Resource identification of the generated payment initiation resource. example: 1234-wertiq-983 type: string transactionFees: $ref: '#/definitions/amount' transactionFeeIndicator: description: |- If equals 'true', the transaction will involve specific transaction cost as shown by the ASPSP in their public price list or as agreed between ASPSP and PSU. If equals 'false', the transaction will not involve additional specific transaction costs to the PSU. type: boolean scaMethods: description: |- This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor, or if an access token is transported. If this data element is contained, then there is also an hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection' contained in the response body. These methods shall be presented towards the PSU for selection by the TPP. type: array items: $ref: '#/definitions/authenticationObject' chosenScaMethod: $ref: '#/definitions/authenticationObject' challengeData: $ref: '#/definitions/challengeData' _links: $ref: '#/definitions/_linksPaymentInitiation' psuMessage: description: Text to be displayed to the PSU type: string maxLength: 512 tppMessages: type: array items: $ref: '#/definitions/tppMessage2XX' required: - transactionStatus - paymentId - _links paymentInitiationCancelResponse-202: description: Body of the response for a successful cancel payment request. type: object properties: transactionStatus: $ref: '#/definitions/transactionStatus' scaMethods: description: |- This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor, or if an access token is transported. If this data element is contained, then there is also an hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection' contained in the response body. These methods shall be presented towards the PSU for selection by the TPP. type: array items: $ref: '#/definitions/authenticationObject' chosenScaMethod: $ref: '#/definitions/authenticationObject' challengeData: $ref: '#/definitions/challengeData' _links: $ref: '#/definitions/_linksPaymentInitiationCancel' required: - transactionStatus paymentInitiationWithStatusResponse: description: Generic JSON response body consisting of the corresponding payment initiation JSON body together with an optional transaction status field. type: object properties: endToEndIdentification: type: string maxLength: 35 debtorAccount: $ref: '#/definitions/accountReference' instructedAmount: $ref: '#/definitions/amount' creditorAccount: $ref: '#/definitions/accountReference' creditorAgent: description: BICFI example: AAAADEBBXXX type: string pattern: '[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}' creditorName: description: Creditor Name example: Creditor Name type: string maxLength: 70 creditorAddress: $ref: '#/definitions/address' remittanceInformationUnstructured: description: Unstructured remittance information example: Ref Number Merchant type: string maxLength: 140 transactionStatus: $ref: '#/definitions/transactionStatus' required: - debtorAccount - instructedAmount - creditorAccount - creditorName startScaprocessResponse: description: Body of the JSON response for a Start SCA authorisation request. type: object properties: scaStatus: $ref: '#/definitions/scaStatus' authorisationId: description: Resource identification of the related SCA example: 123auth456 type: string scaMethods: description: |- This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods. Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor, or if an access token is transported. If this data element is contained, then there is also an hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection' contained in the response body. These methods shall be presented towards the PSU for selection by the TPP. type: array items: $ref: '#/definitions/authenticationObject' chosenScaMethod: $ref: '#/definitions/authenticationObject' challengeData: $ref: '#/definitions/challengeData' _links: $ref: '#/definitions/_linksStartScaProcess' psuMessage: description: Text to be displayed to the PSU type: string maxLength: 512 required: - scaStatus - authorisationId - _links _linksAll: description: A _link object with all available link types type: object properties: scaRedirect: $ref: '#/definitions/hrefType' scaOAuth: $ref: '#/definitions/hrefType' startAuthorisation: $ref: '#/definitions/hrefType' startAuthorisationWithPsuIdentification: $ref: '#/definitions/hrefType' updatePsuIdentification: $ref: '#/definitions/hrefType' startAuthorisationWithProprietaryData: $ref: '#/definitions/hrefType' updateProprietaryData: $ref: '#/definitions/hrefType' startAuthorisationWithPsuAuthentication: $ref: '#/definitions/hrefType' updatePsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' updateEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithAuthenticationMethodSelection: $ref: '#/definitions/hrefType' selectAuthenticationMethod: $ref: '#/definitions/hrefType' startAuthorisationWithTransactionAuthorisation: $ref: '#/definitions/hrefType' authoriseTransaction: $ref: '#/definitions/hrefType' self: $ref: '#/definitions/hrefType' status: $ref: '#/definitions/hrefType' scaStatus: $ref: '#/definitions/hrefType' account: $ref: '#/definitions/hrefType' balances: $ref: '#/definitions/hrefType' transactions: $ref: '#/definitions/hrefType' transactionDetails: $ref: '#/definitions/hrefType' cardAccount: $ref: '#/definitions/hrefType' cardTransactions: $ref: '#/definitions/hrefType' first: $ref: '#/definitions/hrefType' next: $ref: '#/definitions/hrefType' previous: $ref: '#/definitions/hrefType' last: $ref: '#/definitions/hrefType' download: $ref: '#/definitions/hrefType' _linksPaymentInitiation: description: A _link object with available link types for payment initiation example: scaRedirect: href: https://www.testbank.com/asdfasdfasdf self: href: /v1/payments/sepa-credit-transfers/1234-wertiq-983 type: object properties: scaRedirect: $ref: '#/definitions/hrefType' description: In case of an SCA Redirect Approach, the bank is transmitting the link to which to redirect the PSU browser. scaOAuth: $ref: '#/definitions/hrefType' description: In case of a SCA OAuth2 Approach, the bank is transmitting the URI where the configuration of the Authorisation Server can be retrieved. The configuration follows the OAuth 2.0 Authorisation Server Metadata specification. startAuthorisation: $ref: '#/definitions/hrefType' description: In case where an explicit start of the transaction authorisation is needed, but no more data needs to be updated (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded). startAuthorisationWithPsuIdentification: $ref: '#/definitions/hrefType' description: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU identification data. startAuthorisationWithPsuAuthentication: $ref: '#/definitions/hrefType' description: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU authentication data. startAuthorisationWithEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' description: Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on application layer in uploading startAuthorisationWithAuthenticationMethodSelection: $ref: '#/definitions/hrefType' description: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while selecting the authentication method. This link is contained under exactly the same conditions as the data element "scaMethods" startAuthorisationWithTransactionAuthorisation: $ref: '#/definitions/hrefType' description: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while authorising the transaction e.g. by uploading an OTP received by SMS. self: $ref: '#/definitions/hrefType' description: The link to the payment initiation resource created by this request. This link can be used to retrieve the resource data. status: $ref: '#/definitions/hrefType' description: The link to retrieve the transaction status of the payment initiation. scaStatus: $ref: '#/definitions/hrefType' description: The link to retrieve the scaStatus of the corresponding authorisation sub-resource. This link is only contained, if an authorisation sub-resource has been already created. execute: $ref: '#/definitions/hrefType' description: The link to the second step payment execution _linksPaymentInitiationCancel: description: A _link object with available link types for payment initiation cancellation type: object properties: startAuthorisation: $ref: '#/definitions/hrefType' startAuthorisationWithPsuIdentification: $ref: '#/definitions/hrefType' startAuthorisationWithPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithAuthenticationMethodSelection: $ref: '#/definitions/hrefType' _linksStartScaProcess: description: A _link object with available link types for starting the SCA process type: object properties: scaRedirect: $ref: '#/definitions/hrefType' scaOAuth: $ref: '#/definitions/hrefType' updatePsuIdentification: $ref: '#/definitions/hrefType' startAuthorisationWithPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' selectAuthenticationMethod: $ref: '#/definitions/hrefType' authoriseTransaction: $ref: '#/definitions/hrefType' scaStatus: $ref: '#/definitions/hrefType' tppMessageCategory: description: Category of the TPP message example: ERROR type: string enum: - ERROR - WARNING MessageCode400_PIS: description: Message codes defined for PIS for HTTP Error code 400 (BAD_REQUEST). example: FORMAT_ERROR type: string enum: - FORMAT_ERROR - PARAMETER_NOT_CONSISTENT - PARAMETER_NOT_SUPPORTED - SERVICE_INVALID - RESOURCE_UNKNOWN - RESOURCE_EXPIRED - RESOURCE_BLOCKED - TIMESTAMP_INVALID - PERIOD_INVALID - SCA_METHOD_UNKNOWN - CONSENT_UNKNOWN - PAYMENT_FAILED - EXECUTION_DATE_INVALID MessageCode401_PIS: description: Message codes defined for PIS for HTTP Error code 401 (UNAUTHORIZED). example: CERTIFICATE_INVALID type: string enum: - CERTIFICATE_INVALID - CERTIFICATE_EXPIRED - CERTIFICATE_BLOCKED - CERTIFICATE_REVOKE - CERTIFICATE_MISSING - SIGNATURE_INVALID - SIGNATURE_MISSING - CORPORATE_ID_INVALID - PSU_CREDENTIALS_INVALID - CONSENT_INVALID - CONSENT_EXPIRED - TOKEN_UNKNOWN - TOKEN_INVALID - TOKEN_EXPIRED - REQUIRED_KID_MISSING MessageCode403_PIS: description: Message codes defined defined for PIS for PIS for HTTP Error code 403 (FORBIDDEN). example: CONSENT_UNKNOWN type: string enum: - CONSENT_UNKNOWN - SERVICE_BLOCKED - RESOURCE_UNKNOWN - RESOURCE_EXPIRED - PRODUCT_INVALID MessageCode404_PIS: description: Message codes defined for PIS for HTTP Error code 404 (NOT FOUND). example: RESOURCE_UNKNOWN type: string enum: - RESOURCE_UNKNOWN - PRODUCT_UNKNOWN MessageCode405_PIS: description: Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED). example: SERVICE_INVALID type: string enum: - SERVICE_INVALID MessageCode405_PIS_CANC: description: Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED). example: CANCELLATION_INVALID type: string enum: - CANCELLATION_INVALID - SERVICE_INVALID MessageCode408_PIS: description: Message codes defined for AIS for HTTP Error code 408 (REQUEST TIMEOUT). example: REQUEST_TIMEOUT type: string enum: - REQUEST_TIMEOUT MessageCode409_PIS: description: Message codes defined for PIS for HTTP Error code 409 (CONFLICT). example: STATUS_INVALID type: string enum: - STATUS_INVALID MessageCode415_PIS: description: Message codes defined for AIS for HTTP Error code 415 (UNSUPPORTED MEDIA TYPE). example: UNSUPPORTED_MEDIA_TYPE type: string enum: - UNSUPPORTED_MEDIA_TYPE MessageCode503_PIS: description: Message codes for HTTP Error code 503 (SERVICE UNAVAILABLE). example: SERVICE_UNAVAILABLE type: string enum: - SERVICE_UNAVAILABLE tppMessage2XX: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: description: Message codes for HTTP Error codes 2XX. example: WARNING type: string default: WARNING path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage400_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode400_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage401_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode401_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage403_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode403_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage404_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode404_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage405_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: description: Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED). example: SERVICE_INVALID type: string default: SERVICE_INVALID path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage405_PIS_CANC: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode405_PIS_CANC' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage408_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode408_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage409_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: description: Message codes defined for PIS for HTTP Error code 409 (CONFLICT). example: STATUS_INVALID type: string default: STATUS_INVALID path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage415_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode415_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code tppMessage503_PIS: type: object properties: category: $ref: '#/definitions/tppMessageCategory' code: $ref: '#/definitions/MessageCode503_PIS' path: type: string text: description: Additional explaining text to the TPP. type: string maxLength: 512 required: - category - code Error400_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 400 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode400_PIS' additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError' _links: $ref: '#/definitions/_linksAll' required: - type - code Error401_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 401 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode401_PIS' additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError4' _links: $ref: '#/definitions/_linksAll' required: - type - code Error403_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 403 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode403_PIS' additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError8' _links: $ref: '#/definitions/_linksAll' required: - type - code Error404_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 404 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode404_PIS' additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError12' _links: $ref: '#/definitions/_linksAll' required: - type - code Error405_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 405 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: description: Message codes defined for payment cancelations PIS for HTTP Error code 405 (METHOD NOT ALLOWED). example: SERVICE_INVALID type: string default: SERVICE_INVALID additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError16' _links: $ref: '#/definitions/_linksAll' required: - type - code Error405_PIS_CANC: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 405 for a pament cancelation (PIS). type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode405_PIS_CANC' additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError17' _links: $ref: '#/definitions/_linksAll' required: - type - code Error409_PIS: description: |- Standardised definition of reporting error information according to [RFC7807] in case of a HTTP error code 409 for PIS. type: object properties: type: description: |- A URI reference [RFC3986] that identifies the problem type. Remark For Future: These URI will be provided by NextGenPSD2 in future. type: string maxLength: 70 title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: description: Message codes defined for PIS for HTTP Error code 409 (CONFLICT). example: STATUS_INVALID type: string default: STATUS_INVALID additionalErrors: description: |- Array of Error Information Blocks. Might be used if more than one error is to be communicated type: array items: $ref: '#/definitions/AdditionalError22' _links: $ref: '#/definitions/_linksAll' required: - type - code Error400_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage400_PIS' _links: $ref: '#/definitions/_linksAll' Error401_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage401_PIS' _links: $ref: '#/definitions/_linksAll' Error403_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage403_PIS' _links: $ref: '#/definitions/_linksAll' Error404_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage404_PIS' _links: $ref: '#/definitions/_linksAll' Error405_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage405_PIS' _links: $ref: '#/definitions/_linksAll' Error405_NG_PIS_CANC: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage405_PIS_CANC' _links: $ref: '#/definitions/_linksAll' Error408_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 408. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage408_PIS' _links: $ref: '#/definitions/_linksAll' Error409_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage409_PIS' _links: $ref: '#/definitions/_linksAll' Error415_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 415. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage415_PIS' _links: $ref: '#/definitions/_linksAll' Error503_NG_PIS: description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 503. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage503_PIS' _links: $ref: '#/definitions/_linksAll' AdditionalError: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode400_PIS' required: - code AdditionalError4: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode401_PIS' required: - code AdditionalError8: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode403_PIS' required: - code AdditionalError12: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode404_PIS' required: - code AdditionalError16: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: description: Message codes defined for payment cancellations PIS for HTTP Error code 405 (METHOD NOT ALLOWED). example: SERVICE_INVALID default: SERVICE_INVALID $ref: '#/definitions/MessageCode405_PIS_CANC' required: - code AdditionalError17: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: $ref: '#/definitions/MessageCode405_PIS' required: - code AdditionalError22: description: This is a data element to support the declaration of additional errors in the context of [RFC7807]. type: object properties: title: description: |- Short human readable description of error type. Could be in local language. To be provided by ASPSPs. type: string maxLength: 70 detail: description: |- Detailed human readable text specific to this instance of the error. XPath might be used to point to the issue generating the error in addition. Remark for Future: In future, a dedicated field might be introduced for the XPath. type: string maxLength: 512 code: description: Message codes defined for PIS for HTTP Error code 409 (CONFLICT). example: STATUS_INVALID default: STATUS_INVALID $ref: '#/definitions/MessageCode409_PIS' required: - code OtpFormat: description: The format type of the OTP to be typed in. The admitted values are "characters" or "integer". example: characters type: string enum: - characters - integer payment-product: example: sepa-credit-transfers type: 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 payment-service: example: payments type: string enum: - payments - bulk-payments - periodic-payments tags: - name: Payment Initiation Service (PIS) description: 'The Payment Initiation Service (PIS) offers the following services: - Initiation and update of a payment request. - Cancellation of a payment request. - Status information of a payment.' - name: Common Services description: Processes on starting authorisations, PSU authentication data and explicit authorisation of transactions via SCA, which are very similar among PIS and AIS. The API calls supporting these processes are described independently from the service/endpoint. For reasons of clarity, the endpoints are defined always for the Payment Initiation Service, the Payment Cancellation and the Account Information Service (Consents) separately. These processes are usually used following a hyperlink of the bank. x-ibm-configuration: enforced: true testable: true phase: realized securityDefinitions: Sandbox OAuth: type: oauth2 description: Resource Owner Implicit Grant Type flow: accessCode scopes: sandboxapi: Access to all Assets resources offline_access: Required for refresh tokens authorizationUrl: https://api.rapidlink.piraeusbank.gr/piraeusbank/production/v2.1/oauth/oauth2/authorize tokenUrl: https://api.rapidlink.piraeusbank.gr/piraeusbank/production/v2.1/oauth/oauth2/token x-tokenIntrospect: url: https://$(api.endpoint.hostname)/$(api.org.name)/$(env.path)/v2.1/oauth/internal/introspect MSIS OAuth: type: oauth2 description: "" flow: accessCode scopes: winbankAccess.monetaryTransactions: "" offline_access: Required for refresh tokens authorizationUrl: https://openbank.piraeusbank.gr/identityserver/connect/authorize x-tokenIntrospect: url: https://$(api.endpoint.hostname)/$(api.org.name)/$(env.path)/v2.1/oauth/external/introspect tokenUrl: https://openbank.piraeusbank.gr/identityserver/connect/token clientIdHeader: type: apiKey description: "" in: header name: X-IBM-Client-Id security: - MSIS OAuth: - winbankAccess.monetaryTransactions clientIdHeader: [] - Sandbox OAuth: - sandboxapi clientIdHeader: [] externalDocs: description: 'For more information on the framework, please visit:' url: https://www.berlin-group.org/nextgenpsd2-downloads parameters: Authorization: name: Authorization type: string required: true in: header description: This header should be in the form "Bearer Token", where Token is returned from the call to OAuth2. X-IBM-Client-Id: name: X-IBM-Client-Id type: string required: true in: header description: Application's client id x-ibm-endpoints: - endpointUrl: https://api.rapidlink.piraeusbank.gr/piraeusbank/production description: Base Gateway API Endpoint type: - production - development ...