Yapily Payments API (PIS)

Payment Initiation Service Provider (PISP) endpoints for initiating single, scheduled, periodic, bulk, and international payments directly from a customer's bank account. Single-use consent per payment.

OpenAPI Specification

yapily-payments-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Yapily Beneficiaries Application Beneficiaries Payments API
  description: Application and User Beneficiaries endpoints for managing reusable payment counterparties.
  version: 12.4.0
  contact:
    name: Yapily Support
    url: https://docs.yapily.com/resources/support
    email: support@yapily.com
servers:
- url: https://api.yapily.com
security:
- basicAuth: []
tags:
- description: In order to make a Payment on behalf of a user, you are required to request an [Authorisation](#tag/Authorisations) from the user to authorise the user's account to make the payment from. Once a `consent-token` is obtained, you can call the necessary Payments endpoint(s) to execute a payment.
  name: Payments
paths:
  /bulk-payments:
    post:
      description: "Creates a bulk payment after obtaining the user's authorisation. \n\nFeature: `CREATE_BULK_PAYMENT`"
      operationId: createBulkPayment
      parameters:
      - description: __Mandatory__. The `consent-token` containing the user's authorisation to make the request.
        example: '{consentToken}'
        in: header
        name: consent
        required: true
        schema:
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a personal account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-id
        required: false
        schema:
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a business account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-corporate-id
        required: false
        schema:
          type: string
      - description: "__Conditional__. The IP address of the PSU. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-ip-address
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json;charset=UTF-8:
            examples:
              UK Bulk Payment Example Request:
                $ref: '#/components/examples/uk-bulk-payment-example-request'
            schema:
              $ref: '#/components/schemas/SubmitBulkPaymentRequest'
        required: true
      responses:
        '201':
          content:
            application/json;charset=UTF-8:
              examples:
                UK Bulk Payment Example Response:
                  $ref: '#/components/examples/uk-bulk-payment-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfCreateBulkPaymentRequest'
          description: Created
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Create Bulk Payment
      tags:
      - Payments
      x-mint:
        content: '<Info>Learn more: [Bulk Payments Overview](/payments/bulk-payments/overview)</Info>'
  /bulk-payments/{bulkPaymentId}:
    get:
      description: Returns the bulk file status of the bulk payment for given bulkPaymentId
      summary: Get Bulk Payment File Status
      tags:
      - Payments
      operationId: getBulkPaymentStatus
      parameters:
      - schema:
          type: string
        in: header
        name: consent
        description: __Mandatory__. The `consent token` containing the user's authorisation to make the request.
        required: true
      - schema:
          type: string
        in: path
        name: bulkPaymentId
        description: __Mandatory__. Bulk payment id returned when bulk payment request was submitted.
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    properties:
                      tracingId:
                        type: string
                  data:
                    type: object
                    properties:
                      id:
                        description: Unique identifier of the Bulk Payment
                        type: string
                      consentId:
                        description: Identification of the consent.
                        type: string
                      statusDetails:
                        type: object
                        properties:
                          status:
                            type: string
                            description: 'Bulk file status. Enum: `COMPLETED` `PENDING` `FAILED` `UNKNOWN`

                              These values are subject to change.'
                          updatedAt:
                            type: string
                            format: date-time
                      createdAt:
                        type: string
                        format: date-time
              examples:
                Successful 200 OK:
                  value:
                    meta:
                      tracingId: 27b47dca-fb0f-4448-b470-1cd2d5516d0f
                    data:
                      id: 76ad88c7-6e99-4a16-a277-e428a73d1e86
                      consentId: 5daeb980-5ff5-49db-b7a0-e93dd9c93533
                      statusDetails:
                        status: COMPLETED
                        updatedAt: '2024-07-25T18:14:52.672Z'
                      createdAt: '2024-07-25T18:14:52.672Z'
        '400':
          description: Required parameter missing or invalid
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/400-error-response'
        '401':
          description: Authentication Error
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/401-error-response'
        '404':
          description: Bulk payment not found for provided id
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/404-error-response'
        '500':
          description: An unexpected error occurred.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/500-error-response'
      x-mint:
        content: '<Info>Learn more: [Bulk Payment Status Monitoring](/payments/bulk-payments/additional-information#bulk-payment-status-and-monitoring)</Info>'
  /bulk-payments/{bulkPaymentId}/details:
    get:
      description: "Retrieve details of each payment submitted for a given bulkPaymentId. \n\nFeature: `EXISTING_BULK_PAYMENT_DETAILS`"
      operationId: getBulkPaymentDetailsById
      summary: Get Bulk Payment Status Details
      tags:
      - Payments
      parameters:
      - schema:
          type: string
        in: header
        name: consent
        description: __Mandatory__. The `consent token` containing the user's authorisation to make the request.
        required: true
      - schema:
          type: string
        in: path
        name: bulkPaymentId
        description: __Mandatory__. Bulk payment id returned when bulk payment request was submitted
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/BulkPaymentDetailsResponse'
              examples:
                Successful 200 OK:
                  $ref: '#/components/examples/bulk-payment-details-by-id-response'
        '400':
          description: Required parameter missing or invalid
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/400-error-response'
        '401':
          description: Authentication Error
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/401-error-response'
        '404':
          description: Bulk payment not found for provided id
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/404-error-response'
        '500':
          description: An unexpected error occurred.
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/ApiErrorResponseV2'
              examples:
                Example-1:
                  $ref: '#/components/examples/500-error-response'
  /payments:
    post:
      description: "Creates a payment after obtaining the user's authorisation. \n\nFeatures:\n\n- `CREATE_DOMESTIC_PERIODIC_PAYMENT`\n- `CREATE_DOMESTIC_SCHEDULED_PAYMENT`\n- `CREATE_DOMESTIC_SINGLE_INSTANT_PAYMENT`\n- `CREATE_DOMESTIC_SINGLE_PAYMENT`\n- `CREATE_INTERNATIONAL_PERIODIC_PAYMENT`\n- `CREATE_INTERNATIONAL_SCHEDULED_PAYMENT`\n- `CREATE_INTERNATIONAL_SINGLE_PAYMENT`"
      operationId: createPayment
      parameters:
      - description: __Mandatory__. The `consent-token` containing the user's authorisation to make the request.
        example: '{consentToken}'
        in: header
        name: consent
        required: true
        schema:
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a personal account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-id
        required: false
        schema:
          title: User Id
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a business account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-corporate-id
        required: false
        schema:
          title: Corporate User Id
          type: string
      - description: "__Conditional__. The IP address of the PSU. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-ip-address
        required: false
        schema:
          title: User IP Address
          type: string
      - $ref: '#/components/parameters/SubAppHeader'
      requestBody:
        content:
          application/json;charset=UTF-8:
            examples:
              EUR Domestic Single Payment Example Request:
                $ref: '#/components/examples/eur-domestic-single-payment-example-request'
              GBP Domestic Single Payment Example Request:
                $ref: '#/components/examples/gbp-domestic-single-payment-example-request'
            schema:
              $ref: '#/components/schemas/PaymentRequest'
        required: true
      responses:
        '201':
          content:
            application/json;charset=UTF-8:
              examples:
                EUR Domestic Single Payment Example Response:
                  $ref: '#/components/examples/eur-domestic-single-payment-example-response'
                GBP Domestic Single Payment Example Response:
                  $ref: '#/components/examples/gbp-domestic-single-payment-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfPaymentResponse'
          description: Created
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Create Payment
      tags:
      - Payments
      x-mint:
        content: '<Info>Learn more: [Payment Types](/payments/payment-resources/intro-to-payment-execution#payment-types) - This endpoint supports 7 payment types (single, periodic, scheduled, international)</Info>'
  /payments/{paymentId}/details:
    get:
      description: "Returns the details of a payment. \n\nMost commonly used to check for payment status updates. \n\nFeature: `EXISTING_PAYMENTS_DETAILS`"
      operationId: getPayments
      parameters:
      - description: __Mandatory__. The payment Id of the payment.
        in: path
        name: paymentId
        required: true
        schema:
          type: string
      - description: __Mandatory__. The `consent-token` containing the user's authorisation to make the request.
        example: '{consentToken}'
        in: header
        name: consent
        required: true
        schema:
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a personal account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-id
        required: false
        schema:
          title: User Id
          type: string
      - description: "__Conditional__. Represents the user's login ID for the `Institution` to a business account. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-corporate-id
        required: false
        schema:
          title: Corporate User Id
          type: string
      - description: "__Conditional__. The IP address of the PSU. \n\nSee [PSU identifiers](/open-banking-flow/user-authorisation/psu-identifiers) to see if this header is required."
        in: header
        name: psu-ip-address
        required: false
        schema:
          title: User IP Address
          type: string
      - $ref: '#/components/parameters/SubAppHeader'
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                EUR Single Domestic Payment Example Response:
                  $ref: '#/components/examples/eur-single-domestic-payment-details-example-response'
                GBP Single Domestic Payment Example Response:
                  $ref: '#/components/examples/gbp-single-domestic-payment-details-example-response'
                UK Bulk Payment Example Response:
                  $ref: '#/components/examples/uk-bulk-payment-details-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfPaymentResponses'
          description: Ok
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Get Payment Details
      tags:
      - Payments
      x-mint:
        content: '<Info>Learn more: [Payment Status Lifecycle](/payments/payment-resources/payment-status) for monitoring payment execution</Info>'
components:
  schemas:
    PriorityCodeEnum:
      type: string
      enum:
      - NORMAL
      - URGENT
    ResponseMeta:
      type: object
      properties:
        tracingId:
          type: string
    PaymentResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the payment.
        institutionConsentId:
          type: string
          description: Identification of the consent at the Institution.
        paymentIdempotencyId:
          type: string
          description: __Mandatory__. A unique identifier that you must provide to identify the payment. This can be any alpha-numeric string but is limited to a maximum of 35 characters.
        paymentLifecycleId:
          type: string
        status:
          $ref: '#/components/schemas/PaymentStatus'
        statusDetails:
          $ref: '#/components/schemas/PaymentStatusDetails'
        payer:
          $ref: '#/components/schemas/Payer'
        payeeDetails:
          $ref: '#/components/schemas/Payee'
        reference:
          type: string
          description: __Optional__. The payment reference or description. Limited to a maximum of 18 characters long.
        amount:
          type: number
          description: Monetary amount.
        currency:
          type: string
          description: Currency the payment amount is denoted in. Specified as a 3-letter ISO 4217 code.
        amountDetails:
          $ref: '#/components/schemas/Amount'
        createdAt:
          type: string
          description: Date and time of when the payment request was created.
          format: date-time
        firstPaymentAmount:
          $ref: '#/components/schemas/Amount'
        firstPaymentDateTime:
          type: string
          description: Date and time of when the first payment request is to be made.
          format: date-time
        nextPaymentAmount:
          $ref: '#/components/schemas/Amount'
        nextPaymentDateTime:
          type: string
          description: __Conditional__. Defines when the recurring payment is to be made.
          format: date-time
        finalPaymentAmount:
          $ref: '#/components/schemas/Amount'
        finalPaymentDateTime:
          type: string
          description: Date and time of when the final payment is to be made.
          format: date-time
        numberOfPayments:
          type: integer
          description: Number of recurring payment requests to be made as part of the instructed payment schedule.
          format: int32
        previousPaymentAmount:
          $ref: '#/components/schemas/Amount'
        previousPaymentDateTime:
          type: string
          description: Date and time of when the previous payment request was posted.
          format: date-time
        chargeDetails:
          type: array
          items:
            $ref: '#/components/schemas/PaymentChargeDetails'
        scheduledPaymentType:
          type: string
          description: Details the execution type and the payment date between the payer and the payee.
        scheduledPaymentDateTime:
          type: string
          description: Date and time of when the scheduled payment request will be made.
          format: date-time
        frequency:
          $ref: '#/components/schemas/FrequencyResponse'
        currencyOfTransfer:
          type: string
          description: __Mandatory__. The currency to be transferred to the payee. This may differ from the currency the payment is denoted in and the currency of the payer's account. Specified as a 3-letter code (ISO 4217).
        purpose:
          type: string
          description: Specifies the external purpose code for the `Institution` - IS0 20022.
        priority:
          $ref: '#/components/schemas/PriorityCodeEnum'
        exchangeRate:
          $ref: '#/components/schemas/ExchangeRateInformationResponse'
        refundAccount:
          $ref: '#/components/schemas/RefundAccount'
        bulkAmountSum:
          type: number
    ApiResponseOfPaymentResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          $ref: '#/components/schemas/PaymentResponse'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        tracingId:
          type: string
          writeOnly: true
    ApiError:
      type: object
      description: Provides details of the error that has occurred.
      properties:
        code:
          type: integer
          description: __Mandatory__. Numeric `HTTP` status code associated with the error.
          format: int32
        institutionError:
          $ref: '#/components/schemas/InstitutionError'
        message:
          type: string
          description: __Mandatory__. Description of the exact error that has been experienced.
        source:
          type: string
        status:
          type: string
          description: __Mandatory__. Textual description of the `HTTP` error status type.
        tracingId:
          type: string
          description: __Optional__.  A unique identifier assigned by Yapily for the request that can be used for support purposes.
    PaymentStatus:
      type: string
      description: "The status of the Payment. \n\nFor more information, see [Payment Status](/guides/payments/payment-status/)"
      enum:
      - PENDING
      - FAILED
      - DECLINED
      - COMPLETED
      - COMPLETED_SETTLEMENT_IN_PROCESS
      - EXPIRED
      - UNKNOWN
      - ACTIVE
      - INACTIVE
    RawResponse:
      deprecated: true
      type: object
      description: '[DEPRECATED] Interaction (raw request and response) that occurred with the `Institution` in order to fulfil a request.'
      properties:
        request:
          $ref: '#/components/schemas/RawRequest'
        duration:
          type: string
          format: iso8601
        headers:
          type: object
          additionalProperties:
            type: string
        resultCode:
          type: integer
          format: int32
        result:
          type: object
    PaymentRequest:
      required:
      - amount
      - payee
      - paymentIdempotencyId
      - type
      type: object
      properties:
        paymentIdempotencyId:
          title: Idempotency Id
          type: string
          description: __Mandatory__. A unique identifier that you must provide to identify the payment. This can be any alpha-numeric string but is limited to a maximum of 35 characters.
          example: 04ab4536gaerfc0e1f93c4f4
        payer:
          $ref: '#/components/schemas/Payer'
        reference:
          title: Payment Reference
          type: string
          description: __Optional__. The payment reference or description. Limited to a maximum of 18 characters long.
          example: Bill payment
        contextType:
          $ref: '#/components/schemas/PaymentContextType'
        purposeCode:
          $ref: '#/components/schemas/PaymentPurposeCode'
        type:
          $ref: '#/components/schemas/PaymentType'
        payee:
          $ref: '#/components/schemas/Payee'
        periodicPayment:
          $ref: '#/components/schemas/PeriodicPaymentRequest'
        internationalPayment:
          $ref: '#/components/schemas/InternationalPaymentRequest'
        amount:
          $ref: '#/components/schemas/Amount'
        paymentDateTime:
          title: Payment Date
          type: string
          description: '__Conditional__. Used to specify the date of the payment when the payment type is one of the following:


            - `DOMESTIC_SCHEDULED_PAYMENT`

            - `DOMESTIC_PERIODIC_PAYMENT`

            - `INTERNATIONAL_SCHEDULED_PAYMENT`

            - `INTERNATIONAL_PERIODIC_PAYMENT`'
          format: date-time
          example: '2021-07-21T17:32:28Z'
        readRefundAccount:
          title: Read Refund Account
          type: boolean
          description: '__Optional__. Used to request the payer details in the payment response when the `Institution` provides the feature `READ_DOMESTIC_SINGLE_REFUND`.


            See [Reverse Payments](/payments/payment-resources/reverse-payments) for more information.'
          example: false
      description: __Mandatory__. The payment request object defining the details of the payment.
    ApiResponseOfPaymentResponses:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          $ref: '#/components/schemas/PaymentResponses'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        tracingId:
          type: string
          writeOnly: true
    FrequencyRequest:
      required:
      - type
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FrequencyEnumExtended'
        intervalWeek:
          type: integer
          description: __Conditional__. See [payment frequency](/guides/payments/payment-execution/periodic-payments/#payment-frequency) for more information
          format: int32
          example: 1
        intervalMonth:
          type: integer
          description: __Conditional__. See [payment frequency](/guides/payments/payment-execution/periodic-payments/#payment-frequency) for more information
          format: int32
          example: 1
        executionDay:
          type: integer
          description: __Conditional__. See [payment frequency](/guides/payments/payment-execution/periodic-payments/#payment-frequency) for more information
          format: int32
          example: 1
      description: __Mandatory__. Defines the intervals at which payment should be made.
    PaymentContextType:
      title: Payment Code
      type: string
      default: OTHER
      description: __Optional__. The payment context code. This defaults to `OTHER` if not specified.
      enum:
      - BILL
      - GOODS
      - SERVICES
      - OTHER
      - PERSON_TO_PERSON
      - BILL_IN_ADVANCE
      - BILL_IN_ARREARS
      - ECOMMERCE_MERCHANT
      - FACE_TO_FACE_POS
      - TRANSFER_TO_SELF
      - TRANSFER_TO_THIRD_PARTY
      - PISP_PAYEE
    ApiResponseOfCreateBulkPaymentRequest:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          $ref: '#/components/schemas/BulkPaymentResponse'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        tracingId:
          type: string
          writeOnly: true
    AccountIdentification:
      title: Account Identifications
      required:
      - type
      - identification
      type: object
      properties:
        type:
          $ref: '#/components/schemas/AccountIdentificationType'
        identification:
          title: Account Identification
          type: string
          description: "__Mandatory__. The value associated with the account identification type.\n\n See [Account Identification Combinations](/payments/payment-resources/intro-to-payment-execution#account-identifications-combinations) for more information on the format of the values."
          example: '401016'
    PayeeAccountType:
      title: Payee Account Type
      type: string
      description: "__Optional__. The payee account type. \n\nAllowed values: BUSINESS, BUSINESS_SAVING, CHARITY, COLLECTION, CORPORATE, E_WALLET, GOVERNMENT, INVESTMENT, INVESTMENT_ISA, JOINT_PERSONAL, PENSION, PERSONAL, PERSONAL_SAVING, PREMIER, WEALTH ."
    BulkPaymentResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique ID for this Bulk Payment.
        institutionConsentId:
          type: string
          description: The Institution's Consent ID used for this Bulk Payment.
        institutionInteractionId:
          type: string
          description: The Financial API (FAPI) Interaction ID for this Bulk Payment.
        paymentIdempotencyId:
          type: string
          description: The unique ID provided by you to identify this Bulk Payment.
        paymentLifecycleId:
          type: string
        paymentScheme:
          type: string
          description: The payment scheme (ie. payment rail, local instrument) used to carry out this Bulk Payment.
        status:
          $ref: '#/components/schemas/PaymentStatus'
        statusDetails:
          $ref: '#/components/schemas/BulkPaymentStatusDetails'
        payer:
          $ref: '#/components/schemas/Payer'
        payeeDetails:
          $ref: '#/components/schemas/Payee'
        reference:
          type: string
          description: The reference or description for this Bulk Payment.
        amount:
          type: number
          description: The total monetary amount of this Bulk Payment.
        currency:
          type: string
          description: The currency of the amount, specified as a 3-letter ISO 4217 code.
        amountDetails:
          $ref: '#/components/schemas/Amount'
        createdAt:
          type: string
          description: Date and time of when the payment request was created.
          format: date-time
        firstPaymentAmount:
          $ref: '#/components/schemas/Amount'
        firstPaymentDateTime:
          type: string
          description: Date and time of when the first payment request is to be made.
          format: date-time
        nextPaymentAmount:
          $ref: '#/components/schemas/Amount'
        nextPaymentDateTime:
          type: string
          description: __Conditional__. Defines when the recurring payment is to be made.
          format: date-time
        finalPaymentAmount:
          $ref: '#/components/schemas/Amount'
        finalPaymentDateTime:
          type: string
          description: Date and time of when the final payment is to be made.
          format: date-time
        numberOfPayments:
          type: integer
          description: Number of recurring payment requests to be made as part of the instructed payment schedule.
          format: int32
        previousPaymentAmount:
          $ref: '#/components/schemas/Amount'
        previousPaymentDateTime:
          type: string
          description: Date and time of when the previous payment request was posted.
          format: date-time
        chargeDetails:
          type: array
          items:
            $ref: '#/components/schemas/PaymentChargeDetails'
        scheduledPaymentType:
          type: string
          description: Details the execution type and the payment date between the payer and the payee.
        scheduledPaymentDateTime:
          type: string
          description: Date and time of when the scheduled payment request will be made.
          format: date-time
        frequency:
          $ref: '#/components/schemas/FrequencyResponse'
        currencyOfTransfer:
          type: string
          description: __Mandatory__. The currency to be transferred to the payee. This may differ from the currency the payment is denoted in and the currency of the payer's account. Specified as a 3-letter code (ISO 4217).
        purpose:
          type: string
          description: Specifies the external purpose code for the `Institution` - IS0 20022.
        priority:
          $ref: '#/components/schemas/PriorityCodeEnum'
        exchangeRate:
          $ref: '#/components/schemas/ExchangeRateInformationResponse'
        refundAccount:
          $ref: '#/components/schemas/RefundAccount'
     

# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yapily/refs/heads/main/openapi/yapily-payments-api-openapi.yml