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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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: Payment Sessions API
  description: Payment Sessions API
  version: v1
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'
  /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'
  /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'
components:
  schemas:
    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
    ScanCodeAuthenticationSettingsDetails:
      type: object
      properties:
        scanBy:
          type: string
          format: date-time
          description: Custom expiry date in ISO 8601 format.
          example: '2022-11-03T11:23:47.123Z'
    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
    AppNotificationAuthenticationSettingsDetails:
      type: object
      properties:
        instrumentProviderIdentity:
          type: string
          description: App identifier, for instance email, phone number
          example: '+34700000000'
    IndustryData:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    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
    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+&@#/%=~_|]
    ChargeAuthorizationResponse:
      type: object
      properties:
        id:
          type: string
        paymentMethod:
          type: string
        currency:
          type: string
        country:
          type: string
        paymentDescriptor:
          type: string
        status:
          type: string
          enum:
          - AUTHORIZATION_PROCESSING
          - AUTHORIZATION_ASYNC
          - AUTHENTICATION_PENDING
          - CAPTURE_PENDING
          - CAPTURE_PROCESSING
          - CAPTURED
          - REFUND_PROCESSING
          - REFUNDED
          - VOID_PROCESSING
          - VOIDED
          - DISCARDED
          - FAILED
        authenticationMethods:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/AppIntentAuthenticationMethod'
            - $ref: '#/components/schemas/AppNotificationAuthenticationMethod'
            - $ref: '#/components/schemas/MultiFactorAuthenticationMethod'
            - $ref: '#/components/schemas/RedirectAuthenticationMethod'
            - $ref: '#/components/schemas/ScanCodeAuthenticationMethod'
            - $ref: '#/components/schemas/ThreeDsAuthenticationMethod'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        labels:
          type: object
          additionalProperties:
            type: string
        failure:
          $ref: '#/components/schemas/ProcessingFailure'
    BancontactAccountInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/BancontactAccount'
            description: The Bancontact account details.
          type:
            type: string
            description: The BANCONTACT_ACCOUNT payment instrument type.
            enum:
            - BANCONTACT_ACCOUNT
      required:
      - details
      title: Payment Instrument (BANCONTACT_ACCOUNT)
    CardNetworkTokenDetails:
      type: object
      properties:
        brand:
          type: string
        holderName:
          type: string
        expiryMonth:
          type: integer
          format: int32
        expiryYear:
          type: integer
          format: int32
        tokenNumber:
          type: string
        eci:
          type: string
        cryptogram:
          type: string
    Address:
      type: object
      properties:
        firstName:
          type: string
          description: The address first name.
          example: John
        lastName:
          type: string
          description: The address last name.
          example: Smith
        phoneNumber:
          type: string
          description: The address phone number.
          example: '01522113356'
        street:
          type: string
          description: Street name, house number and other details such as apartment number or door number
          example: Maple Street 102/B
        postalCode:
          type: string
          description: The address postal code.
          example: '41460'
        city:
          type: string
          description: The address city.
          example: Berlin
        region:
          type: string
          description: The address region.
          example: Berlin
        country:
          type: string
          description: The address country.
          example: DE
    OrderItem:
      type: object
      properties:
        sku:
          type: string
          description: The order item SKU.
          example: LS123456789
        category:
          type: string
          description: The order item category.
          example: bicycle
        subCategory:
          type: string
          description: The sub category or classification of the product or service in the order.
          example: Sports Wear
        name:
          type: string
          description: The order item name.
          example: White T-Shirt
          minLength: 1
        quantity:
          type: integer
          format: int32
          description: The order item quantity.
          example: 1
        amount:
          type: integer
          format: int64
          description: The amount to pay for each individual item in the payment charge currency's smallest unit.
          example: 1000
      required:
      - amount
      - name
      - quantity
    EducationDetails:
      type: object
      properties:
        admissionNoticeUrl:
          type: string
          description: The admission notice URL
        courseStartDate:
          type: string
          format: date
          description: Course start date
          example: '2025-06-10'
        courseEndDate:
          type: string
          format: date
          description: Course end date
          example: '2025-10-10'
        financedCourse:
          type: boolean
          description: Whether the course is financed?
          example: true
        diplomaCourse:
          type: boolean
          description: Whether the course is diploma?
          example: true
        postHighSchoolCourse:
          type: boolean
          description: Whether the course is post high school?
          example: true
    PatchRequest:
      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
        paymentDescriptor:
          type: string
          description: The payment descriptor (arbitrary string). May be presented to the consumer.
          example: Acme - ORDER 1234
        order:
          $ref: '#/components/schemas/Order'
          description: The order details.
        initialPaymentCharge:
          $ref: '#/components/schemas/InitialPaymentChargeForUpdate'
          description: An initial payment charge to be created when initializing the agreement in a "link and pay" journey
    Profile:
      type: object
      properties:
        createdDate:
          type: string
          format: date
          description: The date when the consumer profile was created.
          example: '2025-01-01'
        firstOrderDate:
          type: string
          format: date
          description: The consumer's first order date.
          example: '2025-01-05'
        lastOrderDate:
          type: string
          format: date
          description: The consumer's last order date.
          example: '2025-06-06'
        lifetimeOrderCount:
          type: integer
          format: int64
          description: The consumer's total number of orders.
          example: 10
        lifetimeOrderValue:
          type: integer
          format: int64
          description: The consumer's total value of orders, expressed in the smallest currency unit.
          example: 1000
        lifetimeCanceledOrderCount:
          type: integer
          format: int64
          description: The consumer's total number of canceled orders.
          example: 1
    AuthorizationResponse:
      type: object
      properties:
        id:
          type: string
          description: The id of instance of payment type
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        status:
          type: string
          description: The status of payment session
          enum:
          - INITIATED
          - AUTHORIZING_INFLIGHT
          - AUTHENTICATION_PENDING
          - SUCCEEDED
          - FAILED
          - EXPIRED
          - REUSE_LIMIT_EXCEEDED
          example: SUCCEEDED
        data:
          description: 'The authorization details. '
          oneOf:
          - $ref: '#/components/schemas/PaymentAgreementDetails'
          - $ref: '#/components/schemas/PaymentChargeDetails'
        authenticationMethods:
          type: array
          description: The available authentication methods for the authorization.
          items:
            oneOf:
            - $ref: '#/components/schemas/AppIntentAuthenticationMethod'
            - $ref: '#/components/schemas/AppNotificationAuthenticationMethod'
            - $ref: '#/components/schemas/MultiFactorAuthenticationMethod'
            - $ref: '#/components/schemas/RedirectAuthenticationMethod'
            - $ref: '#/components/schemas/ScanCodeAuthenticationMethod'
            - $ref: '#/components/schemas/ThreeDsAuthenticationMethod'
        failure:
          $ref: '#/components/schemas/ProcessingFailure'
          description: Payment session authorization error message
    ThreeDsAuthenticationSettingsDetails:
      type: object
      properties:
        returnUrl:
          type: string
          description: The URL to which the consumer is redirected after completing the 3D Secure authentication flow.
          example: https://www.ppro.com/
        preference:
          type: string
          description: The preferred 3D Secure authentication flow.
          enum:
          - CHALLENGE
          - FRICTIONLESS
    AppNotificationAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      title: Authentication Method (APP_NOTIFICATION)
    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
    AirlineTripSegment:
      type: object
      properties:
        fareBasisCode:
          type: string
          description: The fare basis code
          example: YE3MGB
        departureAirportCode:
          type: string
          description: The departure airport code
          example: MAN
        destinationAirportCode:
          type: string
          description: The destination airport code
          example: SYD
        flightNumber:
          type: string
          description: The flight number
          example: BA98
        departureDate:
          type: string
          format: date
          description: The departure date
          example: '2025-01-01'
        flightCarrierCode:
          type: string
          description: The flight carrier code
          example: '016'
        segmentId:
          type: string
          description: The trip segment ID
          example: '1'
    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)
    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
    BancontactAccount:
      type: object
      properties:
        bin:
          type: string
        last4Digits:
          type: string
        expiryMonth:
          type: integer
          format: int32
        expiryYear:
          type: integer
          format: int32
        panAlias:
          type: string
    BankAccountInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/BankAccountDetails'
            description: The bank account details
          type:
            type: string
            description: The BANK_ACCOUNT payment instrument type
            enum:
            - BANK_ACCOUNT
      required:
      - details
      title: Payment Instrument (BANK_ACCOUNT)
    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).
    ThreeDsAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      - type: object
        properties:
          type:
            type: string
            description: The `3DS` authentication type.
            enum:
            - 3DS
          details:
            $ref: '#/components/schemas/ThreeDsAuthenticationDetails'
            description: The 3DS authentication details.
      title: Authentication Method (3DS)
    CardNetworkTokenInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/CardNetworkTokenDetails'
            description: The card network token details
          type:
            type: string
            description: The CARD_NETWORK_TOKEN payment instrument type
            enum:
            - CARD_NETWORK_TOKEN
      required:
      - details
      title: Payment Instrument (CARD_NETWORK_TOKEN)
    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
          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
      required:
      - currency
      - value
    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.
    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)
    Consumer:
      type: object
      properties:
        name:
          type: string
          description: The consumer name.
          example: John Smith
        email:
          type: string
          description: The consumer email.
          example: johnsmith@example.com
        phone:
          type: string
          description: The consumer phone number.
          example: '+491521111111'
        country:
          type: string
          description: 2-letter ISO code of the country where the payment instrument or account has been issued or established (for example GB, US, DE).
          example: DE
        locale:
          type: string
          description: The locale describing the preferred language of the consumer
          example: de-DE
        taxIdentification:
          type: string
          description: The consumer's tax identification number, like CUIT in Argentina, CPF in Brazil, RUT in Chile, NIF in Spain or Portugal, Numéro fiscal in France, and Codice Fiscale in Italy, or the equivalent tax identifier applicable in the consumer's country.
          example: 0798154336790
        merchantConsumerReference:
          type: string
          description: The merchant provided consumer reference.
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        billingAddress:
          $ref: '#/components/schemas/Address'
          description: The billing address details.
        client:
          $ref: '#/components/schemas/Client'
          description: Consumer's client data
        profile:
          $ref: '#/components/schemas/Profile'
          description: Defines the consumers order history.
        birthDate:
          type: string
          format: date
          description: The date of birth of the consumer making the payment.
          example: '1995-06-06'
    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
    AuthenticationSettings:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    AgreementAuthorizationResponse:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          enum:
          - INITIALIZING
          - AUTHENTICATION_PENDING
          - ACTIVE
          - REVOKED_BY_CONSUMER
          - REVOKED_BY_MERCHANT
          - PROVIDER_CONFIRMATION_ASYNC
          - FAILED
        description:
          type: string
        paymentMethod:
          type: string
        frequency:
          $ref: '#/components/schemas/Frequency'
        startDate:
          type: string
          format: date-time
        endDate:
          type: string
          format: date-time
        amount:
          $ref: '#/components/schemas/Money'
        instrumentId:
          type: string
        amountType:
          type: string
          enum:
          - MAX
          - EXACT
          - VARIABLE
        consumer:
          $ref: '#/components/schemas/Consumer'
        authenticationMethods:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/AppIntentAuthenticationMethod'
            - $ref: '#/components/schemas/AppNotificationAuthenticationMethod'
            - $ref: '#/components/schemas/MultiFactorAuthenticationMethod'
            - $ref: '#/components/schemas/RedirectAuthenticationMethod'
            - $ref: '#/components/schemas/ScanCodeAuthenticationMethod'
            - $ref: '#/components/schemas/ThreeDsAuthenticationMethod'
        initialPaymentChargeId:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        labels:
          type: object
          additionalProperties:
            type: string
        failure:
          $ref: '#/components/schemas/ProcessingFailure'
    Money:
      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
      required:
      - currency
      - value
    PassthroughWallet:
      type: object
      properties:
        fingerprint:
          type: string
        paymentReference:
          type: string
        displayIdentifier:
          type: string
        country:
          type: string
        fundingType:
          type: string
          enum:
          - CREDIT
          - DEBIT
    PaymentInstrument:
      discriminator:
        propertyName: type
        mapping:
          BANK_ACCOUNT: '#/components/schemas/BankAccountInstrument'
          CARD_NETWORK_TOKEN: '#/components/schemas/CardNetworkTokenInstrument'
          PASSTHROUGH_WALLET: '#/components/schemas/PassthroughWalletInstrument'
          CARD_PPRO_VAULTED: '#/components/schemas/VaultedCardInstrument'
          MOCK: '#/components/schemas/MockInstrument'
          BANCONTACT_ACCOUNT: '#/components/schemas/BancontactAccountInstrument'
      properties:
        type:
          type: string
      required:
      - type
    PaymentAgreementDetails:
      allOf:
      - $ref: '#/components/schemas/PaymentObjectDetails'
      - type: object
        properties:
          instrumentId:
            type: string
          initialPaymentChargeId:
            type: string
            deprecated: true
            description: The payment charge ID of the initial charge generated by the agreement
          initialPaymentCharge:
            $ref: '#/components/schemas/InitialPaymentChargeResponse'
            description: The initial payment charge details echoed from the session.
      required:
      - id
      - status
    ConsumerWithCountry:
      type: object
      properties:
        name:
          type: string
          description: The consumer name. This is a required field for a payment charge. If you already collect the consumer’s name in the checkout, it’s recommended to always use this parameter to avoid duplicate fields.
          example: John Smith
        email:
          type: string
          description: The consumer email.
          example: johnsmith@example.com
        phone:
          type: string
          description: The consumer phone number.
          exa

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