PPRO Payment Sessions API

The Payment Sessions API from PPRO — 3 operation(s) for payment sessions.

Business capability
Payment Initiation Management BC-1340.10

Operations 4

POST /v1/payment-sessions Create payment session #
POST /v1/payment-sessions/{session-id}/authorizations Authorize payment charge or agreement #
GET /v1/payment-sessions/{session-id} Get payment session #
PATCH /v1/payment-sessions/{session-id} Update payment session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ppro-payment-sessions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ppro-payment-sessions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ppro Payment Sessions API
  version: v1
  description: 'Operations tagged Payment Sessions across 2 of this provider''s published API definitions: ppro-payment-sessions-openapi.yml, ppro-payment-sessions.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sandbox.eu.ppro.com
  description: Production - Sandbox
- url: https://api.eu.ppro.com
  description: Production
security:
- bearer_token: []
tags:
- name: Payment Sessions
paths:
  /v1/payment-sessions:
    post:
      tags:
      - Payment Sessions
      summary: Create payment session
      description: Creates a new Payment Session.
      operationId: createSession
      parameters:
      - name: Merchant-Id
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreationRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreationResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    servers:
    - url: https://api.sandbox.eu.ppro.com
      description: Production - Sandbox
    - url: https://api.eu.ppro.com
      description: Production
  /v1/payment-sessions/{session-id}/authorizations:
    post:
      tags:
      - Payment Sessions
      summary: Authorize payment charge or agreement
      description: Authorize underlying payment charge or agreement of the given payment session.
      operationId: authorizeSession
      parameters:
      - name: session-id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/AuthorizationResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    servers:
    - url: https://api.sandbox.eu.ppro.com
      description: Production - Sandbox
    - url: https://api.eu.ppro.com
      description: Production
  /v1/payment-sessions/{session-id}:
    get:
      tags:
      - Payment Sessions
      summary: Get payment session
      description: Returns the payment session, given the session ID.
      operationId: fetchSession
      parameters:
      - name: session-id
        in: path
        required: true
        schema:
          type: string
          example: sess_FlTZQyHL4DeUYLYtXmOdq
        example: sess_FlTZQyHL4DeUYLYtXmOdq
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/FetchResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    patch:
      tags:
      - Payment Sessions
      summary: Update payment session
      description: Updates a Payment Session.
      operationId: patchSession
      parameters:
      - name: Merchant-Id
        in: header
        required: true
        schema:
          type: string
          minLength: 1
      - name: session-id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/PatchRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CreationResponse'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    servers:
    - url: https://api.sandbox.eu.ppro.com
      description: Production - Sandbox
    - url: https://api.eu.ppro.com
      description: Production
components:
  schemas:
    AdditionalData:
      type: object
      properties:
        merchantAdviceCode:
          type: string
          description: Merchant Advice Code (MAC) returned by the payment network on decline, indicating whether and when the payment may be retried.
        merchantAdviceCodeText:
          type: string
          description: Human-readable explanation of the Merchant Advice Code (MAC).
    AuthenticationMethod:
      discriminator:
        propertyName: type
        mapping:
          APP_INTENT: '#/components/schemas/AppIntentAuthenticationMethod'
          3DS: '#/components/schemas/ThreeDsAuthenticationMethod'
          SCAN_CODE: '#/components/schemas/ScanCodeAuthenticationMethod'
          MULTI_FACTOR: '#/components/schemas/MultiFactorAuthenticationMethod'
          APP_NOTIFICATION: '#/components/schemas/AppNotificationAuthenticationMethod'
          REDIRECT: '#/components/schemas/RedirectAuthenticationMethod'
      properties:
        type:
          type: string
      required:
      - type
    PaymentObjectDetails:
      type: object
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
          description: The underlying payment type
          enum:
          - CHARGE
          - AGREEMENT
          example: CHARGE
        id:
          type: string
          description: The id of the instance of underlying payment type
          example: charge_HsLB04iFFsr9tvWcjNPqW
          minLength: 1
        status:
          type: string
          description: The status of the instance of underlying payment type
          example: CAPTURED
      required:
      - id
      - status
    RedirectAuthenticationSettingsDetails:
      type: object
      properties:
        returnUrl:
          type: string
          description: The page where the consumer should be redirected to after the payment succeeds.
          example: https://example.com/order_details?order_id=12345
    ExternalThreeDs:
      type: object
      properties:
        authenticationStatus:
          type: string
          description: The 3DS authentication status code.
          enum:
          - SUCCESS
          - ATTEMPT_ACKNOWLEDGED
          - FAILED
          - AUTHENTICATION_UNAVAILABLE
        authenticationStatusReason:
          type: string
          description: The 3DS authentication status reason.
          enum:
          - CARD_AUTHENTICATION_FAILED
          - UNKNOWN_DEVICE
          - UNSUPPORTED_DEVICE
          - EXCEEDS_AUTHENTICATION_FREQUENCY_LIMIT
          - EXPIRED_CARD
          - INVALID_CARD_NUMBER
          - INVALID_TRANSACTION
          - NO_CARD_RECORD
          - SECURITY_FAILURE
          - STOLEN_CARD
          - SUSPECTED_FRAUD
          - TRANSACTION_NOT_PERMITTED_TO_CARDHOLDER
          - CARDHOLDER_NOT_ENROLLED_IN_SERVICE
          - TRANSACTION_TIMED_OUT_AT_THE_ACS
          - LOW_CONFIDENCE
          - MEDIUM_CONFIDENCE
          - HIGH_CONFIDENCE
          - VERY_HIGH_CONFIDENCE
          - EXCEEDS_ACS_MAXIMUM_CHALLENGES
          - NON_PAYMENT_TRANSACTION_NOT_SUPPORTED
          - THREE_RI_TRANSACTION_NOT_SUPPORTED
        authenticationValue:
          type: string
          description: The 3DS authentication CAVV.
        authenticationAlgorithm:
          type: string
          description: The 3DS authentication CAVV algorithm used.
        authenticationMode:
          type: string
          description: The 3DS authentication mode.
          enum:
          - SCA
          - FRICTIONLESS
        eci:
          type: string
          description: The 3DS authentication ECI.
        version:
          type: string
          description: The 3DS authentication version.
        externalId:
          type: string
          description: The 3DS authentication transaction identifier.
        externalAcsId:
          type: string
          description: The 3DS universally unique transaction identifier assigned by the ACS to identify a single transaction. Canonical format as defined in IETF RFC 4122.
          example: 4dc406b0-038d-43ef-a96c-c85352c5e2c0
        score:
          type: string
          description: The 3DS score.
        challenge:
          $ref: '#/components/schemas/Challenge'
          description: The 3DS authentication challenge details.
    PaymentMethod:
      type: object
      properties:
        name:
          type: string
          description: The payment method name
          example: BANCOMATPAY
        recommended:
          type: boolean
          description: Smart, context-aware recommendation flag to tailor payment method visibility and ordering on the merchant’s checkout page
          example: true
    RedirectAuthenticationDetails:
      type: object
      properties:
        requestUrl:
          type: string
          description: The URL where the consumer should be redirected in order to authenticate the payment.
          example: https://pay.playground.klarna.com/eu/hpp/payments/123abc
        requestMethod:
          type: string
          description: The redirect HTTP method.
          enum:
          - GET
          - POST
    CreationRequest:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/MoneyWithType'
          description: The amount to be authorized.
        amountType:
          type: string
          description: Defines if the provided 'amount' is a maximum value or an exact value. This field is relevant only for recurring payments.
          enum:
          - MAX
          - EXACT
          - VARIABLE
        consumer:
          $ref: '#/components/schemas/ConsumerWithCountry'
          description: The consumer details.
        recurring:
          type: boolean
          description: Indicates whether this is a recurring payment which needs the creation of a payment-agreement.
          example: false
        webhooksUrl:
          type: string
          description: The URL to which the agreement state changes will be notified
          example: https://webhooks.example.com
          pattern: ^(https)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
        authenticationSettings:
          type: array
          items:
            discriminator:
              propertyName: type
              mapping:
                MULTI_FACTOR: '#/components/schemas/MultiFactorAuthenticationSettings'
                APP_NOTIFICATION: '#/components/schemas/AppNotificationAuthenticationSettings'
            oneOf:
            - allOf:
              - $ref: '#/components/schemas/RedirectAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/ExternalThreeDsAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/ThreeDsAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/ScanCodeAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/MultiFactorAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/AppNotificationAuthenticationSettings'
              title: Authentication Settings
        paymentDescriptor:
          type: string
          description: The payment descriptor (arbitrary string). May be presented to the consumer.
          example: Acme - ORDER 1234
        merchantPaymentChargeReference:
          type: string
          description: The merchant payment charge reference.
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        merchantPaymentAgreementReference:
          type: string
          description: The merchant payment agreement reference.
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        paymentAgreementId:
          type: string
          description: ID of an existing payment-agreement with the consumer
          example: agr_FlTZQyHL4DeUYLYtXmOdq
        order:
          $ref: '#/components/schemas/Order'
          description: The order details.
        initialPaymentCharge:
          $ref: '#/components/schemas/InitialPaymentCharge'
          description: An initial payment charge to be created when initializing the agreement in a "link and pay" journey
        frequency:
          $ref: '#/components/schemas/Frequency'
        startDate:
          type: string
          format: date-time
          description: The start date of the agreement
          example: '2023-03-26T20:24:27+00:00'
        endDate:
          type: string
          format: date-time
          description: The end date of the agreement
          example: '2023-11-27T09:30:00+00:00'
        autoCapture:
          type: boolean
          description: Indicates whether the payment charge should be automatically captured after a successful authorization.
          example: false
        labels:
          type: object
          additionalProperties:
            type: string
            example: GTM_Campaign
            maxLength: 200
          description: Custom labels associated with the payment charge or agreement.
          maxProperties: 50
          propertyNames:
            type: string
            example: consumer_origin
            maxLength: 50
          title: Add Labels
      required:
      - amount
      - consumer
      - recurring
    MultiFactorAuthenticationSettingsDetails:
      type: object
      properties:
        verificationCode:
          type: string
          description: Code generated to authenticate the user.
          example: '777123'
    FetchResponse:
      type: object
      properties:
        id:
          type: string
          description: The payment session ID
          example: sess_FlTZQyHL4DeUYLYtXmOdq
        amount:
          $ref: '#/components/schemas/Money'
          description: The max or exact amount that can be authorized during the session.
        recurring:
          type: boolean
        consumer:
          $ref: '#/components/schemas/Consumer'
        expiresAt:
          type: string
          format: date-time
          description: The payment session expiry timestamp in ISO 8601 format.
          example: '2022-11-03T11:23:47.123Z'
        createdAt:
          type: string
          format: date-time
          description: The payment session creation timestamp in ISO 8601 format.
          example: '2022-11-03T11:23:47.123Z'
        status:
          type: string
          description: The payment-session status
          enum:
          - INITIATED
          - AUTHORIZING_INFLIGHT
          - AUTHENTICATION_PENDING
          - SUCCEEDED
          - FAILED
          - EXPIRED
          - REUSE_LIMIT_EXCEEDED
        labels:
          type: object
          additionalProperties:
            type: string
            example: GTM_Campaign
            maxLength: 200
          description: Custom labels associated with the payment charge or payment agreement
          maxProperties: 50
          propertyNames:
            type: string
            example: consumer_origin
            maxLength: 50
        paymentCharge:
          $ref: '#/components/schemas/ChargeAuthorizationResponse'
          description: Underlying payment-charge
        paymentAgreement:
          $ref: '#/components/schemas/AgreementAuthorizationResponse'
          description: Underlying payment-agreement
    AirlineIndustryData:
      allOf:
      - $ref: '#/components/schemas/IndustryData'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/AirlineDetails'
            description: The airline industry specific details.
          type:
            type: string
            description: The AIRLINE industry data type.
            enum:
            - AIRLINE
      required:
      - details
    Challenge:
      type: object
      properties:
        preference:
          type: string
          description: The 3DS authentication challenge initialization preference.
          enum:
          - NO_PREFERENCE
          - NO_CHALLENGE_REQUESTED
          - CHALLENGE_REQUESTED
          - CHALLENGE_MANDATED
          - DATA_ONLY
        outcome:
          type: string
          description: The 3DS authentication challenge outcome.
          enum:
          - CHALLENGE
          - FRICTIONLESS
          - DATA_ONLY
        exemptionReason:
          type: string
          description: The 3DS authentication challenge exemption reason.
          enum:
          - LOW_VALUE
          - LOW_RISK
          - TRUSTED_BENEFICIARY
          - FIXED_RECURRING
        cancellationReason:
          type: string
          description: The 3DS challenge cancellation indicator.Mandatory for CB transactions.
          enum:
          - CARDHOLDER_CANCELLED
          - REQUESTOR_CANCELLED
          - TRANSACTION_ABANDONED
          - TRANSACTION_TIMEOUT_ACS_OTHER
          - TRANSACTION_TIMEOUT_ACS_CREQ_NOT_RECEIVED
          - TRANSACTION_ERROR
          - UNKNOWN
    ProcessingFailure:
      type: object
      properties:
        failureType:
          type: string
          description: The failure type.
          enum:
          - INTERNAL_ERROR
          - INTERNAL_DECLINE
          - PROVIDER_ERROR
          - PROVIDER_DECLINE
        failureCode:
          type: string
          description: The failure code.
        providerFailureCode:
          type: string
          description: The payment provider failure code.
        failureMessage:
          type: string
          description: The failure message.
        isRetryable:
          type: boolean
          description: Indicates whether the merchant should create a fresh new attempt, where initiating a fresh new attempt at a later time may potentially result in a successful outcome.
        additionalData:
          $ref: '#/components/schemas/AdditionalData'
    TravelDetails:
      type: object
      properties:
        travelType:
          type: string
          description: The travel type
          enum:
          - UNKNOWN
          - ONE_WAY
          - TWO_WAY
          - MULTIPLE
          example: MULTIPLE
        departureDate:
          type: string
          format: date
          description: Departure date
          example: '2025-06-10'
        returnDate:
          type: string
          format: date
          description: Return date
          example: '2025-06-15'
        departureLocation:
          type: string
          description: Departure location, if flight then provide IATA Airport Code
          example: Berlin
        arrivalLocation:
          type: string
          description: Arrival location, if flight then provide IATA Airport Code
          example: Madrid
        destinationCountry:
          type: string
          description: Destination country
          example: ES
        travelCompany:
          type: string
          description: Travel company name
          example: My Travel Company GmbH
        travelerCount:
          type: integer
          format: int64
          description: Total number of travelers
          example: 4
        buyerAmongTravelers:
          type: boolean
          description: Is the buyer consumer among travelers?
          example: true
        travelClass:
          type: string
          description: The class of travel
          example: PREMIUM
        travelInsured:
          type: boolean
          description: Whether the travel is insured?
          example: true
        travelDiscountVoucher:
          type: string
          description: Travel discount voucher
          example: TWENTY-OFF
        luggageSupplement:
          type: boolean
          description: Whether availing luggage supplement?
          example: true
        travelCanBeModifiedOrCanceled:
          type: boolean
          description: Can the travel be modified or canceled?
          example: true
        stayCompany:
          type: string
          description: Stay company name
          example: Hotel XYZ
        stayDestination:
          type: string
          description: Stay destination
          example: Madrid
        stayNightsCount:
          type: integer
          format: int64
          description: Stay nights count
          example: 4
        stayRoomRange:
          type: string
          description: Stay room category
          example: 4_STARS
    AirlineDetails:
      type: object
      properties:
        pnr:
          type: string
          description: The passenger number record
          example: SKJ2NS01AS
        numberOfPassengers:
          type: integer
          format: int32
          description: The number of passengers
          example: 1
          minimum: 1
        airlineCode:
          type: string
          description: The airline code
          example: '016'
        passengerEmail:
          type: string
          description: The passenger email
          example: john@gmail.com
        passengerPhone:
          type: string
          description: The passenger phone number
          example: '14082319231'
        passengerName:
          type: string
          description: The passenger name
          example: John Doe
        carrierCode:
          type: string
          description: The airline carrier code
          example: '016'
        tripSegments:
          type: array
          description: The trip segment details
          items:
            $ref: '#/components/schemas/AirlineTripSegment'
    AppIntentAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      - type: object
        properties:
          type:
            type: string
            description: The APP_INTENT authentication type.
            enum:
            - APP_INTENT
          details:
            $ref: '#/components/schemas/AppIntentAuthenticationDetails'
            description: The APP_INTENT authentication details.
      title: Authentication Method (APP_INTENT)
    VaultedCardInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/VaultedCardDetails'
            description: The vaulted card details.
          type:
            type: string
            description: The CARD_PPRO_VAULTED payment instrument type.
            enum:
            - CARD_PPRO_VAULTED
      required:
      - details
      title: Payment Instrument (CARD_PPRO_VAULTED)
    RedirectAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/RedirectAuthenticationSettingsDetails'
            description: The REDIRECT authentication settings.
          type:
            type: string
            description: The REDIRECT authentication type settings.
            enum:
            - REDIRECT
    ScanCodeAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/ScanCodeAuthenticationSettingsDetails'
            description: The SCAN_CODE authentication details.
          type:
            type: string
            description: The SCAN_CODE authentication type.
            enum:
            - SCAN_CODE
    AuthenticationSettings:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    InitialPaymentChargeResponse:
      type: object
      properties:
        id:
          type: string
          description: The payment charge ID of the initial charge generated by the agreement
        paymentDescriptor:
          type: string
          description: The transaction descriptor (arbitrary string). May be presented to the consumer.
          example: PPRO - ORDER 1234
        amount:
          $ref: '#/components/schemas/Money'
          description: The initial payment charge amount.
    AppNotificationAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/AppNotificationAuthenticationSettingsDetails'
            description: The APP_NOTIFICATION authentication details.
          type:
            type: string
            description: The APP_NOTIFICATION authentication type.
            enum:
            - APP_NOTIFICATION
    ScanCodeAuthenticationDetails:
      type: object
      properties:
        codeType:
          type: string
          description: The type of the scan or of the code payload.
          enum:
          - QR
          - UPC
          - ITF
          - CODE128
          - PAYMENT_REFERENCE
        codeImage:
          type: string
          description: The pre-generated scan code image for the ease of integration.
          example: https://authman-mobileapp.ppro.com/qr.png?payload=dXBpR2xvYmFsOi8vc3RhcnRfdHJhbnNhY3Rpb24/dHI9MTIzJmZyb21fcXI9dHJ1ZQ==
        codePayload:
          type: string
          description: The payload for the scan code or for the reference to construct the image or the UX on the partners side.
          example: upiGlobal://pay?tr=123&from_desktop=true
        codeDocument:
          type: string
          description: The URL of the pdf/html pay slip document.
          example: https://urltodocument.com
        codeProviderEntityId:
          type: string
          description: The identifier of the code provider entity.
          example: '45648'
        scanBy:
          type: string
          format: date-time
          description: The custom expiry timestamp (ISO 8601 format) before which the consumer is expected to complete the payment.
          example: '2022-11-03T11:23:47.123Z'
    InitialPaymentChargeForUpdate:
      type: object
      properties:
        initiator:
          type: string
          description: The charge initiator
          enum:
          - MERCHANT
          - CONSUMER
        paymentDescriptor:
          type: string
          description: The transaction descriptor (arbitrary string). May be presented to the consumer.
          example: PPRO - ORDER 1234
        amount:
          $ref: '#/components/schemas/Money'
          description: The amount to be authorized.
        autoCapture:
          type: boolean
          description: Indicates whether the payment charge should be automatically captured after a successful authorization.
          example: true
        merchantPaymentChargeReference:
          type: string
          description: The merchant payment charge reference. Aka, Transaction Reference.
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        webhooksUrl:
          type: string
          description: The URL to which the payment charge state changes will be notified
          pattern: ^(https)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]
    RedirectAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      - type: object
        properties:
          type:
            type: string
            description: The REDIRECT authentication type.
            enum:
            - REDIRECT
          details:
            $ref: '#/components/schemas/RedirectAuthenticationDetails'
            description: The REDIRECT authentication details.
      title: Authentication Method (REDIRECT)
    AuthorizationRequest:
      type: object
      properties:
        paymentMethod:
          type: string
          description: The payment method which should be used to process the payment.
          example: PAYPAL
          minLength: 1
        consumer:
          $ref: '#/components/schemas/Consumer'
        amount:
          $ref: '#/components/schemas/MoneyWithType'
          description: The amount to be authorized.
        amountType:
          type: string
          description: Defines if the provided 'amount' is a maximum value or an exact value. This field is relevant only for recurring payments.
          enum:
          - MAX
          - EXACT
          - VARIABLE
        initialPaymentCharge:
          $ref: '#/components/schemas/InitialPaymentCharge'
          description: An initial payment charge to be created when initializing the agreement in a "link and pay" journey
        instrument:
          description: The payment instrument. This field is required for a subset of PPRO's supported payment methods.
          oneOf:
          - $ref: '#/components/schemas/BancontactAccountInstrument'
          - $ref: '#/components/schemas/BankAccountInstrument'
          - $ref: '#/components/schemas/CardNetworkTokenInstrument'
          - $ref: '#/components/schemas/MockInstrument'
          - $ref: '#/components/schemas/PassthroughWalletInstrument'
          - $ref: '#/components/schemas/VaultedCardInstrument'
        authenticationSettings:
          type: array
          description: Authorization-time authentication settings overrides.
          items:
            discriminator:
              propertyName: type
              mapping:
                MULTI_FACTOR: '#/components/schemas/MultiFactorAuthenticationSettings'
                APP_NOTIFICATION: '#/components/schemas/AppNotificationAuthenticationSettings'
            oneOf:
            - allOf:
              - $ref: '#/components/schemas/MultiFactorAuthenticationSettings'
              title: Authentication Settings
            - allOf:
              - $ref: '#/components/schemas/AppNotificationAuthenticationSettings'
              title: Authentication Settings
        startDate:
          type: string
          format: date-time
          description: The start date of the agreement
          example: '2023-03-26T20:24:27+00:00'
        endDate:
          type: string
          format: date-time
          description: The end date of the agreement
          example: '2023-11-27T09:30:00+00:00'
        frequency:
          $ref: '#/components/schemas/Frequency'
          description: The frequency of the agreement
          example: MONTHLY
        labels:
          type: object
          additionalProperties:
            type: string
            example: GTM_Campaign
            maxLength: 200
          description: Custom labels associated with the payment charge or agreement.
          maxProperties: 50
          propertyNames:
            type: string
            example: consumer_origin
            maxLength: 50
          title: Add Labels
      required:
      - paymentMethod
    ExternalThreeDsAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/ExternalThreeDs'
            description: The EXTERNAL_3DS authentication settings.
          type:
            type: string
            description: The `EXTERNAL_3DS` authentication type.
            enum:
            - EXTERNAL_3DS
    Client:
      type: object
      properties:
        ip:
          type: string
          description: The IP address of the client
          example: 11.22.22.33
        userAgent:
          type: string
          description: The user agent of the client device
          example: Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36
          maxLength: 500
          minLength: 0
    MoneyWithType:
      type: object
      properties:
        value:
          type: integer
          format: int64
          description: The amount in currency's smallest unit.
          example: 1000
        currency:
          type: string
          description: ISO 4217 3-letter currency code.
          example: EUR
          maxLength: 3
          minLength: 3
        type:
          type: string
          deprecated: true
         

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppro/refs/heads/main/openapi/ppro-payment-sessions-api-openapi.yml