--- swagger: "2.0" info: x-ibm-name: psd2-payments-foreign-api title: Berlin Group foreign version: 1.0.5 description: "" schemes: - https basePath: /v1/payments-api consumes: - application/json produces: - application/json securityDefinitions: clientIdHeader: type: apiKey in: header name: X-IBM-Client-Id security: - clientIdHeader: [] x-ibm-configuration: testable: true enforced: true phase: realized application-authentication: certificate: false paths: /{payment-service}/cross-border-credit-transfers: post: description: "This method is used to initiate a payment at the ASPSP.\n\n## Variants of Payment Initiation Requests\n\nThis method to initiate a payment initiation at the ASPSP can be sent with a JSON body.\n\nFurthermore the request body depends on the **payment-service**\n * ***payments***: A single payment initiation request.\n \n In case of a *JSON* there are several JSON payment blocks contained in a joining list.\n * ***periodic-payments***: \n Create a standing order initiation resource for recurrent i.e. periodic payments addressable under {paymentId} \n with all data relevant for the corresponding payment product and the execution of the standing order contained in a JSON body. \n\nThis is the first step in the API to initiate the related recurring/periodic payment.\n \n## Single and mulitilevel SCA Processes\n\nThe Payment Initiation Requests are independent from the need of one ore multilevel \nSCA processing, i.e. independent from the number of authorisations needed for the execution of payments. \n\nBut the response messages are specific to either one SCA processing or multilevel SCA processing. \n\nFor payment initiation with multilevel SCA, this specification requires an explicit start of the authorisation, \ni.e. links directly associated with SCA processing like 'scaRedirect' or 'scaOAuth' cannot be contained in the \nresponse message of a Payment Initation Request for a payment, where multiple authorisations are needed. \nAlso if any data is needed for the next action, like selecting an SCA method is not supported in the response, \nsince all starts of the multiple authorisations are fully equal. \nIn these cases, first an authorisation sub-resource has to be generated following the 'startAuthorisation' link.\n" summary: Payment initiation request tags: - Payment Initiation Service (PIS) operationId: initiatePaymentCross produces: - application/json parameters: - name: payment-service type: string required: true in: path enum: - payments - periodic-payments - 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. \nMust 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 preceeding 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.\n\nMandated for the Redirect SCA Approach (including OAuth2 SCA approach), specifically \nwhen TPP-Redirect-Preferred equals \"true\".\nIt is recommended to always use this header field.\n\n**Remark for Future:** \nThis 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, \ne.g. because of the usage of a signing basket. \nThis preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.\n\nIf it equals \"false\" or if the parameter is not used, there is no preference of the TPP. \nThis especially indicates that the TPP assumes a direct authorisation of the transaction in the next step, \nwithout 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: body in: body required: true description: JSON request body for a payment inition request message schema: $ref: '#/definitions/paymentInitiationSct_json' responses: 201: description: CREATED schema: $ref: '#/definitions/paymentInitationRequestResponse-201' examples: application/json: '{"description":"Response in case of a redirect with an implicitly created authorisation sub-resource","value":{"transactionStatus":"RCVD","paymentId":"1234-wertiq-983","_links":{"scaRedirect":{"href":"https://www.testbank.com/asdfasdfasdf"},"self":{"href":"/v1/payments/sepa-credit-transfers/1234-wertiq-983"},"status":{"href":"/v1/payments/1234-wertiq-983/status"},"scaStatus":{"href":"/v1/payments/1234-wertiq-983/authorisations/123auth456"}}}}' 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 headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error400_NG_PIS' 401: description: Unauthorized headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error401_NG_PIS' 403: description: Forbidden headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error403_NG_PIS' 404: description: Not found headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error404_NG_PIS' 405: description: Method Not Allowed headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error405_NG_PIS' 406: description: Not Acceptable headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 408: description: Request Timeout headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 409: description: Conflict headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 schema: $ref: '#/definitions/Error409_NG_PIS' 415: description: Unsuported Media Type headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 429: description: Too Many Requests headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 500: description: Internal Server Error headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 503: description: Service Unavailable headers: Location: type: string X-Request-ID: type: string default: 99391c7e-ad88-49ec-a2ad-99ddcb1f7721 definitions: accountReference: title: accountReference description: "Reference to an account by either\n * IBAN, of a payment accounts, or\n * BBAN, for payment accounts if there is no IBAN, or \n * the Primary Account Number (PAN) of a card, can be tokenised by the ASPSP due to PCI DSS requirements, or\n * the Primary Account Number (PAN) of a card in a masked form, or\n * 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\n\nThis data element can be used in the body of the Consent Request\n Message for retrieving Account access Consent from this Account. This\n data elements is used for payment Accounts which have no IBAN.\n ISO20022: Basic Bank Account Number (BBAN). \n \n Identifier used nationally by financial institutions, i.e., in individual countries, \n generally as part of a National Account Numbering Scheme(s), \n 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: title: 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 chargeBearer: description: Charge Bearer. ChargeBearerType1Code from ISO20022 type: string enum: - DEBT - CRED - SHAR - SLEV creditorAgentName: description: Creditor Agent Name type: string maxLength: 70 example: Creditor Agent Name amount: title: 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.78" type: string pattern: -?[0-9]{1,14}(\.[0-9]{1,3})? required: - currency - amount paymentInitiationSct_json: title: paymentInitiationSct_json description: Body for a SCT payment initation. 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' creditorAgentName: $ref: '#/definitions/creditorAgentName' chargeBearer: $ref: '#/definitions/chargeBearer' remittanceInformationUnstructured: description: Unstructured remittance information example: Ref Number Merchant type: string maxLength: 140 requestedExecutionDate: type: string format: date required: - debtorAccount - instructedAmount - creditorAccount - creditorName paymentInitationRequestResponse-201: title: paymentInitationRequestResponse-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' serviceLevel: type: string enum: - SEPA - URGP - SDVA - NEXT - SPOT - NURG endToEndIdentification: type: string maxLength: 35 creditorAgentName: $ref: '#/definitions/creditorAgentName' required: - transactionStatus - paymentId - _links transactionStatus: title: transactionStatus description: "The transaction status is filled with codes of the ISO 20022 data table:\n- 'ACCC': 'AcceptedSettlementCompleted' -\n Settlement on the creditor's account has been completed.\n- 'ACCP': 'AcceptedCustomerProfile' - \n Preceding check of technical validation was successful. \n Customer profile check was also successful.\n- 'ACSC': 'AcceptedSettlementCompleted' - \n Settlement on the debtor?s account has been completed.\n \n **Usage:** this can be used by the first agent to report to the debtor that the transaction has been completed. \n \n **Warning:** this status is provided for transaction status reasons, not for financial information. \n It can only be used after bilateral agreement.\n- 'ACSP': 'AcceptedSettlementInProcess' - \n All preceding checks such as technical validation and customer profile were successful and therefore the payment initiation has been accepted for execution.\n- 'ACTC': 'AcceptedTechnicalValidation' - \n Authentication and syntactical and semantical validation are successful.\n- 'ACWC': 'AcceptedWithChange' - \n Instruction is accepted but a change will be made, such as date or remittance not sent.\n- 'ACWP': 'AcceptedWithoutPosting' - \n Payment instruction included in the credit transfer is accepted without being posted to the creditor customer?s account.\n- 'RCVD': 'Received' - \n \ Payment initiation has been received by the receiving agent.\n- 'PDNG': 'Pending' - \n Payment initiation or individual transaction included in the payment initiation is pending. \n Further checks and status update will be performed.\n- 'RJCT': 'Rejected' - \n Payment initiation or individual transaction included in the payment initiation has been rejected.\n- 'CANC': 'Cancelled'\n Payment initiation has been cancelled before execution\n Remark: This code is still requested from ISO20022.\n- 'ACFC': 'AcceptedFundsChecked' -\n Preceeding check of technical validation and customer profile was successful and an automatic funds check was positive .\n Remark: This code is still requested from ISO20022.\n- 'PATC': 'PartiallyAcceptedTechnical'\n Correct The payment initiation needs multiple authentications, where some but not yet all have been performed. Syntactical and semantical validations are successful.\n Remark: This code is still requested from ISO20022." example: ACCC type: string enum: - ACCC - ACCP - ACSC - ACSP - ACTC - ACWC - ACWP - RCVD - PDNG - RJCT - CANC - ACFC - PATC authenticationObject: title: 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: title: authenticationType description: "Type of the authentication method.\n\nMore authentication types might be added during implementation projects and documented in the ASPSP documentation.\n\n \ - 'SMS_OTP': An SCA method, where an OTP linked to the transaction to be authorised is sent to the PSU through a SMS channel.\n - 'CHIP_OTP': An SCA method, where an OTP is generated by a chip card, e.g. an TOP derived from an EMV cryptogram. \n To contact the card, the PSU normally needs a (handheld) device. \n With this device, the PSU either reads the challenging data through a visual interface like flickering or \n the PSU types in the challenge through the device key pad. \n The device then derives an OTP from the challenge data and displays the OTP to the PSU.\n - 'PHOTO_OTP': An SCA method, where the challenge is a QR code or similar encoded visual data \n which can be read in by a consumer device or specific mobile app. \n The device resp. the specific app than derives an OTP from the visual challenge data and displays \n the OTP to the PSU.\n - '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 OtpFormat: title: 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 challengeData: title: 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 _linksAll: title: _linksAll description: A _link object with all availabel 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: title: _linksPaymentInitiation description: "A list of hyperlinks to be recognised by the TPP.\nThe actual hyperlinks used in the response depend on the dynamical decisions of the ASPSP when\nprocessing the request.\n\n**Remark:** All links can be relative or full links, to be decided by the ASPSP.\n\nType of links admitted in this response, (further links might be added for ASPSP defined extensions):\n\n* 'scaRedirect': \n In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser.\n* 'scaOAuth': \n In case of a SCA OAuth2 Approach, the ASPSP is transmitting the URI where the configuration of the Authorisation\n Server can be retrieved. The configuration follows the OAuth 2.0 Authorisation Server Metadata specification.\n* 'startAuthorisation': \n In case, where an explicit start of the transaction authorisation is needed, but no more data needs to be updated \n (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded).\n* 'startAuthorisationWithPsuIdentification': \n The link to the authorisation end-point, where the authorisation sub-resource has to be generated while \n uploading the PSU identification data.\n* 'startAuthorisationWithPsuAuthentication': \n The link to the authorisation end-point, where the authorisation sub-resource has to be generated while \n uploading the PSU authentication data.\n * 'startAuthorisationWithEncryptedPsuAuthentication':\n \ Same as startAuthorisactionWithPsuAuthentication where the authentication data need to be encrypted on \n application layer in uploading.\n* 'startAuthorisationWithAuthenticationMethodSelection': \n The link to the authorisation end-point, where the authorisation sub-resource has to be generated while \n selecting the authentication method. \n This link is contained under exactly the same conditions as the data element \"scaMethods\"\n* 'startAuthorisationWithTransactionAuthorisation':\n The link to the authorisation end-point, where the authorisation sub-resource has to be generated while \n \ authorising the transaction e.g. by uploading an OTP received by SMS.\n* 'self': \n The link to the payment initiation resource created by this request.\n This link can be used to retrieve the resource data.\n* 'status': \n The link to retrieve the transaction status of the payment initiation.\n* 'scaStatus': \n \ The link to retrieve the scaStatus of the corresponding authorisation sub-resource. \n This link is only contained, if an authorisation sub-resource has been already created." 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' scaOAuth: $ref: '#/definitions/hrefType' startAuthorisation: $ref: '#/definitions/hrefType' startAuthorisationWithPsuIdentification: $ref: '#/definitions/hrefType' startAuthorisationWithPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithEncryptedPsuAuthentication: $ref: '#/definitions/hrefType' startAuthorisationWithAuthenticationMethodSelection: $ref: '#/definitions/hrefType' startAuthorisationWithTransactionAuthorisation: $ref: '#/definitions/hrefType' self: $ref: '#/definitions/hrefType' status: $ref: '#/definitions/hrefType' scaStatus: $ref: '#/definitions/hrefType' tppMessageCategory: title: tppMessageCategory description: Category of the TPP message category example: ERROR type: string enum: - ERROR - WARNING MessageCode400_PIS: title: 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: title: 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: title: 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: title: 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 tppMessage2XX: title: 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: title: 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: title: 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: title: 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: title: 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: title: 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 tppMessage409_PIS: title: 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 Error400_NG_PIS: title: 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: title: 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: title: 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: title: 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: title: Error405_NG_PIS description: | NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 405. type: object properties: tppMessages: type: array items: $ref: '#/definitions/tppMessage405_PIS' _links: $ref: '#/definitions/_linksAll' Error409_NG_PIS: title: 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' hrefType: description: Link to a resource type: object properties: href: $ref: '#/definitions/hrefEntry' hrefEntry: description: Link to a resource type: string example: /v1/payments/sepa-credit-transfers/1234-wertiq-983 tags: - name: Payment Initiation Service (PIS) description: | The Decription for Payment Initiation Service (PIS) offers the following services: * Initiation and update of a payment request * Status information of a payment - name: Common Services description: "Processes on starting authorisations, update PSU identification or PSU authentication data and explicit \nauthorisation of transactions by using SCA are very similar in PIS and AIS and signing baskets services. \nThe API calls supporting these processes are described in the following independently from the service/endpoint. \nFor reasons of clarity, the endpoints are defined always for the Payment Initiation Service, the Payment Cancellation, \nthe Account Information Service (Consents), and Signing Baskets separately. \nThese processes usually are used following a hyperlink of the ASPSP. " externalDocs: url: https://www.berlin-group.org/nextgenpsd2-downloads description: | Full Documentation of NextGenPSD2 Access to Account Interoperability Framework (General Introduction Paper, Operational Rules, Implementation Guidelines) x-ibm-endpoints: - endpointUrl: https://api-mtls-sandbox.rba.hr type: - production - development ...