Worldline Refund Initiation Service V3 (Extended services) API

The Refund Initiation Service V3 (Extended services) API from Worldline — 6 operation(s) for refund initiation service v3 (extended services).

OpenAPI Specification

wordline-refund-initiation-service-v3-extended-services-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: 'The current set of APIs will be available in Q2 2026 on Worldline Global Issuing Platforms.

    Additional APIs are under construction and planned to be available in 2026.'
  version: 2.41.1
  title: Worldline Card Issuing Account - AccountState Refund Initiation Service V3 (Extended services) API
  contact: {}
host: sbx-wlip.api1-eu2.psapigateway.preprod.giservices.io/card-issuing
basePath: /api/v2
schemes:
- https
tags:
- name: Refund Initiation Service V3 (Extended services)
paths:
  /refunds:
    post:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Refund initiation request
      description: 'Use this operation to initiate one or more refunds. For Wero refunds only one refund may be provide with each request.

        '
      operationId: refundInitiate
      parameters:
      - $ref: '#/components/parameters/confirmForNotification'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      - $ref: '#/components/parameters/InitiatingPartyReturnUrl'
      - $ref: '#/components/parameters/InitiatingPartyRefundNotificationUrl'
      - $ref: '#/components/parameters/UseAuthorisationLandingPages'
      - $ref: '#/components/parameters/Locale'
      - $ref: '#/components/parameters/LastLogin'
      - $ref: '#/components/parameters/PsuIpAddress'
      - $ref: '#/components/parameters/PsuIpPort'
      - $ref: '#/components/parameters/HttpMethod'
      - $ref: '#/components/parameters/HttpHeaderUserAgent'
      - $ref: '#/components/parameters/HttpHeaderReferer'
      - $ref: '#/components/parameters/HttpHeaderAccept'
      - $ref: '#/components/parameters/HttpHeaderAcceptCharset'
      - $ref: '#/components/parameters/HttpHeaderAcceptEncoding'
      - $ref: '#/components/parameters/HttpHeaderAcceptLanguage'
      - $ref: '#/components/parameters/DeviceId'
      - $ref: '#/components/parameters/GeoLocation'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundInitiationRequest'
        required: false
      responses:
        201:
          description: 'Created

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
            AspspScaApproach:
              $ref: '#/components/headers/AspspScaApproach'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundInitiationResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
  /refunds/{refundId}/status:
    get:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Status of the refund
      description: 'Use this operation to retrieve the status of a refund.

        '
      operationId: refundStatus
      parameters:
      - $ref: '#/components/parameters/refundId'
      - $ref: '#/components/parameters/confirm'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      - $ref: '#/components/parameters/PsuIpAddress'
      responses:
        200:
          description: 'Successful

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
            AspspScaApproach:
              $ref: '#/components/headers/AspspScaApproach'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundStatusResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
  /refunds/{refundId}/confirmation:
    post:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Confirmation of the refund request by the PISP
      description: 'This API is used to confirm a refund, confirmation is required

        when the link ''ConfirmationRequired'' is returned.

        '
      operationId: refundConfirmation
      parameters:
      - $ref: '#/components/parameters/refundId'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      - $ref: '#/components/parameters/InitiatingPartyReturnUrl'
      - $ref: '#/components/parameters/LastLogin'
      - $ref: '#/components/parameters/PsuIpAddress'
      - $ref: '#/components/parameters/PsuIpPort'
      - $ref: '#/components/parameters/HttpMethod'
      - $ref: '#/components/parameters/HttpHeaderUserAgent'
      - $ref: '#/components/parameters/HttpHeaderReferer'
      - $ref: '#/components/parameters/HttpHeaderAccept'
      - $ref: '#/components/parameters/HttpHeaderAcceptCharset'
      - $ref: '#/components/parameters/HttpHeaderAcceptEncoding'
      - $ref: '#/components/parameters/HttpHeaderAcceptLanguage'
      - $ref: '#/components/parameters/DeviceId'
      - $ref: '#/components/parameters/GeoLocation'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmationRequest'
        required: false
      responses:
        200:
          description: 'OK

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundConfirmationResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
  /refunds/{refundId}/identification:
    post:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Refund identification request
      description: 'Use this operation to identify a PSU in decoupled approach. The

        response of the post refunds API will provide a link to this api in the ''PostIdentificationForDecoupled''

        field if this step is required.

        '
      operationId: refundIdentification
      parameters:
      - $ref: '#/components/parameters/refundId'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentIdentificationRequest'
      responses:
        201:
          description: 'Created

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundIdentificationResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
  /refunds/{refundId}/authorisations:
    post:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Refund authorisation request
      description: 'Use this operation to authorise a refund explicitly.

        '
      operationId: refundAuthorisation
      parameters:
      - $ref: '#/components/parameters/refundId'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      requestBody:
        description: 'Description of request.

          '
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentAuthorisationRequest'
        required: false
      responses:
        201:
          description: 'Created

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundAuthorisationResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
  /refunds/{refundId}/authorisations/{authorisationId}:
    put:
      security:
      - Authorization: []
      tags:
      - Refund Initiation Service V3 (Extended services)
      summary: Refund authorisation request
      description: 'Use this operation to change the authorisation resource.

        '
      operationId: refundAuthorisationUpdate
      parameters:
      - $ref: '#/components/parameters/refundId'
      - $ref: '#/components/parameters/authorisationId'
      - $ref: '#/components/parameters/X-Request-ID'
      - $ref: '#/components/parameters/MessageCreateDateTime'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentAuthorisationUpdateRequest'
        required: false
      responses:
        200:
          description: 'Updated

            '
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            MessageCreateDateTime:
              $ref: '#/components/headers/MessageCreateDateTime'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundAuthorisationResponse'
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        403:
          $ref: '#/components/responses/403'
        404:
          $ref: '#/components/responses/404'
        415:
          $ref: '#/components/responses/415'
        500:
          $ref: '#/components/responses/500'
        502:
          $ref: '#/components/responses/502'
        503:
          $ref: '#/components/responses/503'
        511:
          $ref: '#/components/responses/511'
components:
  parameters:
    Locale:
      name: Locale
      in: header
      schema:
        type: string
      description: '2-digit ISO-639 code for the language in which the Bank Selection Interface are displayed.


        For special languages can be used 5-digit code like nl-BE, where first is ISO-639 langauge code and the second is ISO-3166 country code.


        If not set, the language of the Bank Selection Interface is taken over from the end user’s browser configuration or the system configuration of the Bank Selection Interface server.

        '
    confirm:
      name: confirm
      in: query
      description: 'If set to ''true'' the transaction will be immediately confirmed

        by the Open Banking Service if confirmation of the payment by the Initiating Party is required by the ASPSP.

        '
      schema:
        type: string
    HttpHeaderReferer:
      name: HttpHeaderReferer
      in: header
      description: 'PSU Session information.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    HttpMethod:
      name: HttpMethod
      in: header
      description: 'PSU Session information.


        HTTP method used at the PSU-TPP interface. Available values - GET,

        POST, PUT, DELETE.

        '
      schema:
        maxLength: 6
        minLength: 3
        type: string
    authorisationId:
      name: authorisationId
      in: path
      required: true
      schema:
        type: string
      example: aid-4846
      description: 'The Id used by the Open Banking Service to refer to an authorisation resource.

        '
    HttpHeaderAcceptEncoding:
      name: HttpHeaderAcceptEncoding
      in: header
      description: 'PSU Session information.


        The forwarded IP Accept header fields consist of the corresponding

        HTTP request Accept header fields between PSU and TPP.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    HttpHeaderUserAgent:
      name: HttpHeaderUserAgent
      in: header
      description: 'PSU Session information.


        The forwarded Agent header field of the HTTP request between PSU

        and TPP.


        Required if

        * the `PaymentProduct`equals `IDEAL`

        * `PsuId`is provided

        * `UseDebtorToken` does not equal `false`

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    GeoLocation:
      name: GeoLocation
      in: header
      description: 'The forwarded Geo Location of the corresponding http request

        between PSU and TPP.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    X-Request-ID:
      name: X-Request-ID
      in: header
      description: 'UUID for unique request identification.

        '
      required: true
      schema:
        maxLength: 36
        minLength: 1
        type: string
      example: abcdef2e-3000-4000-88cc-ae40e3b113d7
    PsuIpAddress:
      name: PsuIpAddress
      in: header
      description: 'PSU Session information.


        The forwarded IP Address header field consists of the corresponding

        HTTP request IP Address field between PSU and TPP . It shall be

        contained if and only if this request was actively initiated by the

        PSU.

        '
      schema:
        maxLength: 35
        minLength: 1
        type: string
    DeviceId:
      name: DeviceId
      in: header
      description: 'UUID (Universally Unique Identifier) for a device, which is used by

        the PSU. 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.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    MessageCreateDateTime:
      name: MessageCreateDateTime
      in: header
      description: 'The message create date time.


        ISO 8601 DateTime.

        '
      required: true
      schema:
        type: string
        format: date-time
      example: '2020-09-25T08:15:00.856Z'
    InitiatingPartyReturnUrl:
      name: InitiatingPartyReturnUrl
      in: header
      description: 'The callback URL for the redirection back to the initiating party

        after authorization.

        '
      schema:
        maxLength: 4000
        minLength: 1
        type: string
        example: https://www.example.org
    HttpHeaderAcceptCharset:
      name: HttpHeaderAcceptCharset
      in: header
      description: 'PSU Session information.


        The forwarded IP Accept header fields consist of the corresponding

        HTTP request Accept header fields between PSU and TPP.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    confirmForNotification:
      name: confirm
      in: query
      description: 'If set to ''true'' the transaction will be immediately confirmed by the Open Banking Service if confirmation of the payment by the Initiating Party is required by the ASPSP.

        <br>**Note:** This field is only applicable when the notification service is used by the Initiating Party to receive the status of the payment. When the notification is not used this flag can be set in the GET status API.

        '
      schema:
        type: string
    PsuIpPort:
      name: PsuIpPort
      in: header
      description: 'PSU Session information.


        The forwarded IP Port header field consists of the corresponding

        HTTP request IP Port field between PSU and TPP, if available.

        '
      schema:
        maxLength: 5
        minLength: 1
        type: string
    LastLogin:
      name: LastLogin
      in: header
      description: 'PSU Session information.


        The time when the PSU last logged in with the TPP. ISO 8601 DateTime.

        '
      schema:
        type: string
        format: date-time
    UseAuthorisationLandingPages:
      name: UseAuthorisationLandingPages
      in: header
      schema:
        type: boolean
        default: false
      description: 'If true, Bank Selection Interface will be used to request required information from PSU directly

        '
    HttpHeaderAccept:
      name: HttpHeaderAccept
      in: header
      description: 'PSU Session information.


        The forwarded IP Accept header fields consist of the corresponding

        HTTP request Accept header fields between PSU and TPP.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    HttpHeaderAcceptLanguage:
      name: HttpHeaderAcceptLanguage
      in: header
      description: 'PSU Session information.


        The forwarded IP Accept header fields consist of the corresponding

        HTTP request Accept header fields between PSU and TPP.

        '
      schema:
        maxLength: 500
        minLength: 1
        type: string
    refundId:
      name: refundId
      in: path
      description: 'The Id used by the Open Banking Service to refer to a refund.

        '
      required: true
      schema:
        type: string
      example: e2e-pid-486215
    InitiatingPartyRefundNotificationUrl:
      name: InitiatingPartyRefundNotificationUrl
      in: header
      schema:
        maxLength: 4000
        minLength: 1
        type: string
  schemas:
    Refund:
      required:
      - PaymentId
      - Amount
      type: object
      additionalProperties: false
      properties:
        PaymentId:
          maxLength: 35
          minLength: 1
          type: string
          description: 'Id generated by the Open Banking Service. This should be used to

            refer to this payment in subsequent api calls.

            '
        EndToEndId:
          maxLength: 35
          minLength: 1
          type: string
          description: 'Unique identification, as assigned by the initiating party,

            to unambiguously identify the transaction. This identification is passed

            on, unchanged, throughout the entire end-to-end chain.

            '
          example: ID-0123456789
        RefundReason:
          type: string
          enum:
          - ReturnedGoods
          - WrongAmountCorrection
          - PreDisputeRefund
          - SubscriptionRefund
          - ServiceLateCancellation
          - Other
          description: 'Select one of the following reasons for the refund.

            '
        ConsumerFreeText:
          maxLength: 255
          minLength: 1
          type: string
          description: "Information provided by the acceptor to the consumer as part of a refund. \nOnly characters from the SEPA character set are permitted: \nletters (a–z, A–Z), digits (0–9), and the symbols / ? : ( ) . , ' + - as well as whitespace.\n"
          example: Refund because of wrong billing amount.
        RefundType:
          type: string
          enum:
          - FullRefund
          - PartialRefund
          - OverRefund
          description: 'Select whether the refund is full, partial, or more than the original amount.

            '
        Amount:
          $ref: '#/components/schemas/RefundAmount'
        OverRefund:
          $ref: '#/components/schemas/OverRefund'
        CreditorInformation:
          $ref: '#/components/schemas/CreditorInformation'
    Link:
      required:
      - Href
      type: object
      additionalProperties: false
      properties:
        Href:
          maxLength: 1024
          minLength: 1
          type: string
    ExchangeRateInformationResponse:
      type: object
      additionalProperties: false
      properties:
        UnitCurrency:
          pattern: '[A-Z]{3,3}'
          type: string
          description: 'Currency in which the rate of exchange is expressed in a currency

            exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.

            '
        ExchangeRate:
          type: number
          description: 'The factor used for conversion of an amount from one currency

            to another. This reflects the price at which one currency was bought with

            another currency. Rate expressed as a decimal, for example, 0.7 is 7/10

            and 70%.

            '
        RateType:
          type: string
          description: 'Specifies the type used to complete the currency exchange.

            * Spot: Exchange rate applied is the spot rate.

            * Sale: Exchange rate applied is the market rate at the time of the sale.

            * Agreed: Exchange rate applied is the rate agreed between the parties.

            '
          enum:
          - Spot
          - Sale
          - Agreed
        ContractIdentification:
          maxLength: 256
          minLength: 1
          type: string
          description: 'Unique and unambiguous reference to the foreign exchange contract

            agreed between the initiating party/creditor and the debtor agent.

            '
        ExpirationDateTime:
          type: string
          description: 'Expiration date time. ISO 8601 DateTime.

            '
          format: date-time
      description: 'Provides details on the currency exchange rate and contract.

        '
    BillingAddress:
      type: object
      additionalProperties: false
      properties:
        SameAsShippingAddress:
          type: boolean
          default: false
          description: 'Indicates whether the billing addess is the same with shipping address. If true the information provided under `BillingAddressDetails` will be ignored

            '
        BillingAddressDetails:
          $ref: '#/components/schemas/AddressData'
    RefundAuthorisationResponseLinks:
      type: object
      additionalProperties: false
      description: 'A list of hyperlinks to be recognized by the Initiating Party. The actual

        hyperlinks used in the response depend on the dynamical decisions on

        authorization approach for example. Remark - All links are full links.


        * ''RedirectUrl'': In case of an Redirect approach, the Initiating Party has to use this link to redirect the PSU’s browser session to the ASPSP.

        * ''PutAuthorisationForEmbedded'': In case of an embedded approach, endpoint to be called to add information to the Authorization.

        * ''SelectAuthenticationMethod'': In case of an embedded approach, the Initiating Party has to use this link to pass the SCA method.

        * ''AuthorizeTransaction'': In case of an embedded approach, the Initiating Party has to authorize the payment by providing the SCA OneTimePassword.

        * ''ConfirmationRequired'': Endpoint to be called for payment confirmation for ASPSPs that require explicit confirmation of payments.

        * ''GetRefundStatus'': Endpoint to be called for retrieving the refund status.

        '
      properties:
        RedirectUrl:
          $ref: '#/components/schemas/Link'
        PutAuthorisationForEmbedded:
          $ref: '#/components/schemas/Link'
        SelectAuthenticationMethod:
          $ref: '#/components/schemas/Link'
        AuthorizeTransaction:
          $ref: '#/components/schemas/Link'
        ConfirmationRequired:
          $ref: '#/components/schemas/Link'
        GetRefundStatus:
          $ref: '#/components/schemas/Link'
    StatusResponseLinks:
      type: object
      additionalProperties: false
      description: 'A list of hyperlinks to be recognized by the Initiating Party. The actual

        hyperlinks used in the response depend on the dynamical decisions on

        authorization approach for example. Remark - All links are full links.


        * ''RedirectUrl'': In case of an Redirect approach, the Initiating Party has to use this link to redirect the PSU’s browser session.

        * ''PostAuthorisationForExplicit'': In case the ASPSP requires explicit start of authorization.

        * ''PostIdentificationForDecoupled'': In case of a Decoupled approach, identification of the PSU required to start the decoupled authorization.

        * ''PutAuthorisationForEmbedded'': In case of an embedded approach, endpoint to be called to add information to the Authorization.

        * ''SelectAuthenticationMethod'': In case of an embedded approach, the Initiating Party has to use this link to pass the SCA method.

        * ''AuthorizeTransaction'': In case of an embedded approach, the Initiating Party has to authorize the payment by providing the SCA OneTimePassword.

        * ''ConfirmationRequired'': Endpoint to be called for payment confirmation for ASPSPs that require explicit confirmation of payments.

        '
      properties:
        RedirectUrl:
          $ref: '#/components/schemas/Link'
        PostAuthorisationForExplicit:
          $ref: '#/components/schemas/Link'
        PostIdentificationForDecoupled:
          $ref: '#/components/schemas/Link'
        PostAuthorisationForEmbedded:
          $ref: '#/components/schemas/Link'
        PutAuthorisationForEmbedded:
          $ref: '#/components/schemas/Link'
        SelectAuthenticationMethod:
          $ref: '#/components/schemas/Link'
        AuthorizeTransaction:
          $ref: '#/components/schemas/Link'
        ConfirmationRequired:
          $ref: '#/components/schemas/Link'
    ScaChallengeData:
      type: object
      additionalProperties: false
      properties:
        AdditionalInformation:
          type: string
          description: 'Additional Information for the PSU describing the method.

            '
        Data:
          type: array
          description: 'A collection of strings as challenge data.

            '
          items:
            type: string
        Image:
          type: string
          description: 'Image in base64 encoding

            '
        ImageLink:
          type: string
          description: 'URL of image

            '
        OtpFormat:
          type: string
          description: 'The OTP format.

            '
        OtpMaxLength:
          type: integer
          description: 'The maximum length for the OTP.

            '
          format: int32
      description: 'JSON DTO used to represent challenge data.

        '
    PaymentAuthorisationRequest:
      type: object
      additionalProperties: false
      properties:
        PsuData:
          $ref: '#/components/schemas/PsuDataIdentification'
        PsuCredentials:
          type: array
          items:
            $ref: '#/components/schemas/PsuAuthCredentials'
      example:
        PsuData:
          AspspPsuId: Psu-12345
          AspspCustomerId: Psu-12345
          AspspPsuIdType: string
          AspspPsuCorporateId: string
          AspspPsuCorporateIdType: string
        PsuCredentials:
        - CredentialId: ewl-user-id
          CredentialValue: Test User
        - CredentialId: ewl-password
          CredentialValue: qwerty
    CommonPaymentDataRefundDetailsResponse:
      required:
      - RefundId
      - RefundStatus
      type: object
      additionalProperties: false
      properties:
        RefundId:
          maxLength: 35
          minLength: 1
          type: string
          description: 'Id generated by the Open Banking Service. This should be used to

            refer to this refund in subsequent api calls.

            '
        RefundStatus:
          $ref: '#/components/schemas/PaymentStatusEnum'
        InitiatingPartyReferenceId:
          maxLength: 36
          minLength: 1
          type: string
          description: 'Reference to the payment created by the Initiating Party.

            This Id will not be visible to the Payment Service User.

            '
          example: InitParty ref-id-23457890
        FundsAvailable:
          type: boolean
          description: 'Information whether sufficient funding is available.

            '
        DebtorInformation:
          $ref: '#/components/schemas/DebtorInformation'
        AuthorisationRequiredData:
          $ref: '#/components/schemas/AuthorisationRequiredData'
        PsuMessage:
          maxLength: 1024
          minLength: 1
          type: string
          description: 'Text to be displayed to the PSU.

            '
      description: 'Basic type for Payment Initiation Response

        '
    RefundAuthorisationApproachLinks:
      type: object
      additionalProperties: false
      description: 'A list of hyperlinks to be recognized by the Initiating Party. The actual

        hyperlinks used in the response depend on the dynamical decisions on

        authorization approach for example. Remark - All links are full links.


        * ''PreAuthenticationForEmbedded'': In case of an embedded pre-authentication required by the ASPSP, the Initiating Party has to use this link.

        * ''RedirectUrl'': In case of an Redirect approach, the Initiating Party has to use this link to redirect the PSU’s browser session to the ASPSP.

        * ''PostAuthorisationForExplicit'': In case the ASPSP requires explicit start of authorization.

        * ''PostIdentificationForDecoupled'': In case of a Decoupled approach, identification of the PSU required to start the decoupled authorization.

        * ''PostAuthorisationForEmbedded'': In case of an embedded approach, endpoint to be called to start the embedded authorization.

        * ''SelectAuthenticationMethod'': In case of an embedded approach, the Initiating Party has to use this link to pass the SCA method.

        * ''AuthorizeTransaction'': In case of an embedded approach, the Initiating Party has to authorize the payment by providing the SCA OneTimePassword.

        * ''ConfirmationRequired'': Endpoint to be called for payment confirmation for ASPSPs that require explicit confirmation of payments.

        * ''GetRefundStatus'': Endpoint to be called for retrieving the refund status.

        '
      properties:
        PreAuthenticationForEmbedded:
          $ref: '#/components/schemas/Link'
        RedirectUrl:
          $ref: '#/components/schemas/Link'
        PostAuthorisationForExplicit:
          $ref: '#/components/schemas/Link'
        PostIdentificationForDecoupled:
          $ref: '#/components/schemas/Link'
        PostAuthorisationForEmbedded:
          $ref: '#/components/schemas/Link'
        SelectAuthenticationMetho

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wordline/refs/heads/main/openapi/wordline-refund-initiation-service-v3-extended-services-api-openapi.yml