PPRO Payment Agreements API

The Payment Agreements API from PPRO — 2 operation(s) for payment agreements.

Business capability
Payment Initiation Management BC-1340.10

Operations 2

POST /v1/payment-agreements Create a Payment Agreement #
GET /v1/payment-agreements/{agreement-id} Retrieve a Payment Agreement #

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-agreements-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-agreements-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Ppro Payment Agreements API
  version: v1
  description: 'Operations tagged Payment Agreements across 2 of this provider''s published API definitions: ppro-payment-agreements-openapi.yml, ppro-payment-agreements.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sandbox.eu.ppro.com
  description: Production - Sandbox environment for integration testing
- url: https://api.qa.eu.ppro.com/v1/payment-agreements
  description: QA
security:
- bearer_token: []
tags:
- name: Payment Agreements
paths:
  /v1/payment-agreements:
    post:
      tags:
      - Payment Agreements
      summary: Create a Payment Agreement
      operationId: createAgreement
      parameters:
      - name: Merchant-Id
        in: header
        description: The merchant identifier.
        required: true
        schema:
          type: string
        example: merch_cb6RQnZbBwSBkn34QYXhr
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgreementRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementResponse'
        '504':
          description: Call to the upstream dependency timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    servers:
    - url: https://api.sandbox.eu.ppro.com
      description: Production - Sandbox environment for integration testing
    - url: https://api.qa.eu.ppro.com/v1/payment-agreements
      description: QA
  /v1/payment-agreements/{agreement-id}:
    get:
      tags:
      - Payment Agreements
      summary: Retrieve a Payment Agreement
      operationId: fetchPaymentAgreement
      parameters:
      - name: agreement-id
        in: path
        required: true
        schema:
          type: string
      - name: Merchant-Id
        in: header
        description: The merchant identifier.
        required: true
        schema:
          type: string
        example: merch_cb6RQnZbBwSBkn34QYXhr
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgreementResponse'
        '504':
          description: Call to the upstream dependency timed out.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionResponseBody'
    servers:
    - url: https://api.sandbox.eu.ppro.com
      description: Production - Sandbox environment for integration testing
    - url: https://api.qa.eu.ppro.com/v1/payment-agreements
      description: QA
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).
    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
    AuthenticationMethod:
      type: object
      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:
        details: {}
        type:
          type: string
          enum:
          - REDIRECT
          - SCAN_CODE
          - APP_INTENT
          - APP_NOTIFICATION
          - MULTI_FACTOR
          - EXTERNAL_3DS
          - 3DS
    RawCardInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - properties:
          details:
            description: The card details
            properties:
              brand:
                description: The card brand.<br>The value must be provided in uppercase.
                example: VISA
              number:
                description: The primary account number (PAN) of the card used for the payment.
                example: '4444333322221111'
              cvv:
                description: Card Verification Value used to authenticate the card during a payment.
                example: '123'
              holderName:
                description: The full name of the cardholder as it appears on the card.
                example: John Smith
              expiryMonth:
                format: int32
                description: The two-digit expiration month of the card.
                example: '1'
                maximum: 12
                minimum: 1
              expiryYear:
                format: int32
                description: The four-digit expiration year of the card.
                example: '2031'
                minimum: 2000
            required:
            - expiryMonth
            - expiryYear
            - holderName
            - number
          validate:
            description: If included, PPRO will try to validate the instrument with a nominal-amount authorization. If validation fails, the instrument creation request will fail
            properties:
              currency:
                description: ISO 4217 3-letter currency code.
                example: EUR
                maxLength: 3
                minLength: 3
              taxIdentification:
                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: '798154336790'
            required:
            - currency
          type:
            description: The `RAW_CARD` payment instrument type.
            enum:
            - RAW_CARD
      required:
      - details
      title: Payment Instrument (RAW_CARD)
    HistoryEntryResponse:
      type: object
      properties:
        id:
          type: string
          description: The history entry ID
          example: ahist_pmCQxjxTj35kx6KaSgOJh
        status:
          type: string
          description: The history entry status
          enum:
          - INITIALIZING
          - AUTHENTICATION_PENDING
          - AUTHORIZATION_PROCESSING
          - ACTIVE
          - REVOKED_BY_CONSUMER
          - REVOKED_BY_MERCHANT
          - REVOKED_BY_PROVIDER
          - FAILED
          example: ACTIVE
        failure:
          type: 'null'
          $ref: '#/components/schemas/ProcessingFailure'
          description: The processing failure, if the operation failed.
        createdAt:
          type: string
          format: date-time
          description: The history entry timestamp
          example: '2023-03-26T20:24:27.123Z'
    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.
        outOfScope:
          $ref: '#/components/schemas/OutOfScope'
          description: The 3DS out of scope object, to be used if the payment is out of scope of SCA
    RedirectAuthenticationDetails:
      type: object
      properties:
        requestUrl:
          type: string
          description: The URL where the consumer should be redirected in order to authenticate the agreement.
        requestMethod:
          type: string
          description: The redirect HTTP method.
          enum:
          - GET
          - POST
    MultiFactorAuthenticationSettingsDetails:
      type: object
      properties:
        verificationCode:
          type: string
          description: Code generated to authenticate the user.
          example: '777123'
    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
      title: Industry Data (AIRLINE)
    RevocationResponse:
      type: object
      properties:
        id:
          type: string
          description: The revocation ID
          example: rev_pmCQxjxTj35kx6KaSgOJh
        revocationStatus:
          type: string
          description: The revocation status
          enum:
          - REVOKED_BY_CONSUMER
          - REVOKED_BY_PROVIDER
          - REVOKED_BY_MERCHANT
          - REVOCATION_FAILED
          example: ACTIVE
        failure:
          type: 'null'
          $ref: '#/components/schemas/ProcessingFailure'
          description: The processing failure, if revocation failed.
        createdAt:
          type: string
          format: date-time
          description: The revocation timestamp
          example: '2023-03-26T20:24:27.123Z'
    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
    BancontactAccountDetails:
      type: object
      properties:
        bin:
          type: string
          description: The bank identification number
          example: '1234'
          maxLength: 8
          minLength: 6
          pattern: ^(\d{6}|\d{8})$
        last4Digits:
          type: string
          description: The last 4 digits of the card
          example: '1234'
          maxLength: 4
          minLength: 4
          pattern: ^\d+$
        expiryMonth:
          type: integer
          format: int32
          description: The card expiration month
          example: 1
          maximum: 12
          minimum: 1
        expiryYear:
          type: integer
          format: int32
          description: The card expiration year
          example: 2024
          minimum: 2000
        panAlias:
          type: string
          description: The card PAN alias
          minLength: 1
      required:
      - bin
      - expiryMonth
      - expiryYear
      - last4Digits
      - panAlias
    AirlineDetails:
      type: object
      properties:
        pnr:
          type: string
          description: The passenger number record
          example: SKJ2NS01AS
          minLength: 1
        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'
      required:
      - pnr
    ScanCodeAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/ScanCodeAuthenticationSettingsDetails'
            description: The SCAN_CODE authentication settings.
          type:
            type: string
            description: The SCAN_CODE authentication type settings.
            enum:
            - SCAN_CODE
      title: Authentication Settings (SCAN_CODE)
    AppIntentAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/AppIntentAuthenticationDetails'
            description: The APP_INTENT authentication details.
          type:
            type: string
            description: The APP_INTENT authentication type.
            enum:
            - APP_INTENT
      title: Authentication Method (APP_INTENT)
    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
      title: Authentication Settings (REDIRECT)
    AuthenticationSettings:
      discriminator:
        propertyName: type
        mapping:
          3DS: '#/components/schemas/ThreeDsAuthenticationSettings'
          SCAN_CODE: '#/components/schemas/ScanCodeAuthenticationSettings'
          EXTERNAL_3DS: '#/components/schemas/ExternalThreeDsAuthenticationSettings'
          MULTI_FACTOR: '#/components/schemas/MultiFactorAuthenticationSettings'
          APP_NOTIFICATION: '#/components/schemas/AppNotificationAuthenticationSettings'
          REDIRECT: '#/components/schemas/RedirectAuthenticationSettings'
      properties:
        type:
          type: string
      required:
      - type
    AppNotificationAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/AppNotificationAuthenticationSettingsDetails'
            description: The APP_NOTIFICATION authentication settings.
          type:
            type: string
            description: The APP_NOTIFICATION authentication type settings.
            enum:
            - APP_NOTIFICATION
      title: Authentication Settings (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 provider entity ID.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: '2023-03-26T20:24:27.123Z'
    RedirectAuthenticationMethod:
      allOf:
      - $ref: '#/components/schemas/AuthenticationMethod'
      - type: object
        properties:
          details:
            $ref: '#/components/schemas/RedirectAuthenticationDetails'
            description: The REDIRECT authentication details.
          type:
            type: string
            description: The REDIRECT authentication type.
            enum:
            - REDIRECT
      title: Authentication Method (REDIRECT)
    AppNotificationAuthenticationDetails: {}
    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
      title: Authentication Settings (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
    MultiFactorAuthenticationSettings:
      allOf:
      - $ref: '#/components/schemas/AuthenticationSettings'
      - type: object
        properties:
          settings:
            $ref: '#/components/schemas/MultiFactorAuthenticationSettingsDetails'
            description: The MULTI_FACTOR authentication settings.
          type:
            type: string
            description: The MULTI_FACTOR authentication type settings.
            enum:
            - MULTI_FACTOR
      title: Authentication Settings (MULTI_FACTOR)
    Frequency:
      type: object
      properties:
        type:
          type: string
          description: The type of frequency between consecutive payment charges.
          enum:
          - DAILY
          - WEEKLY
          - MONTHLY
          - YEARLY
          example: MONTHLY
        interval:
          type: integer
          format: int32
          default: 1
          description: The interval between consecutive payment charges. The unit of the interval depends on the frequency type. For example, if type is MONTHLY and interval is 3, it means every 3 months.
          example: 3
          maximum: 1000
          minimum: 1
      required:
      - type
    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'
        birthDate:
          type: string
          format: date
          description: The consumer birth date.
          example: '1995-06-06'
        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
        client:
          $ref: '#/components/schemas/Client'
          description: Consumer's client data
        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 reference for the consumer.
          example: 5c019979-0751-469e-96e0-b67f1d95c577
        billingAddress:
          $ref: '#/components/schemas/Address'
          description: The consumer's billing address.
        profile:
          $ref: '#/components/schemas/Profile'
          description: The consumer's profile details as available from the merchant
      required:
      - country
    UpiAutopayInstrument:
      allOf:
      - $ref: '#/components/schemas/PaymentInstrument'
      - type: object
        properties:
          type:
            type: string
            description: The UPI_AUTOPAY payment instrument type
            enum:
            - UPI_AUTOPAY
      title: Payment Instrument (UPI_AUTOPAY)
    AgreementResponse:
      type: object
      properties:
        id:
          type: string
          description: The payment agreement ID
          example: agr_pmCQxjxTj35kx6KaSgOJh
        status:
          type: string
          description: The payment agreement status
          enum:
          - INITIALIZING
          - AUTHENTICATION_PENDING
          - AUTHORIZATION_PROCESSING
          - ACTIVE
          - REVOKED_BY_CONSUMER
          - REVOKED_BY_MERCHANT
          - REVOKED_BY_PROVIDER
          - FAILED
          example: ACTIVE
        failure:
          $ref: '#/components/schemas/ProcessingFailure'
          description: The latest payment agreement processing failure.
        description:
          type: string
          description: The description of the agreement
        merchantPaymentAgreementReference:
          type: string
          description: The merchant payment agreement reference
        paymentMethod:
          type: string
          description: The payment method which was used to process the payment charge.
          example: UPI_AUTOPAY
        frequency:
          $ref: '#/components/schemas/Frequency'
          description: The frequency of payment charges
        startDate:
          type: string
          format: date-time
          description: The start date of the agreement
          example: '2023-03-26T20:24:27.123Z'
        endDate:
          type: string
          format: date-time
          description: The end date of the agreement
          example: '2023-03-26T20:24:27.123Z'
        amount:
          $ref: '#/components/schemas/Money'
          description: Defines the amount of each subsequent payment charge. Defined in conjunction with 'amountType'.
        instrumentId:
          type: string
          description: The ID of the payment instrument associated with the agreement.
        instrumentUpdated:
          type: boolean
          description: Indicates that the Payment Instrument has been updated during processing. Query Payment Instruments to retrieve the new details.
        amountType:
          type: string
          description: Defines if the provided 'amount' is a maximum value or an exact value.
          enum:
          - MAX
          - EXACT
          - VARIABLE
        consumer:
          $ref: '#/components/schemas/Consumer'
          description: The consumer details to be used in subsequent payment charges.
        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'
        history:
          type: array
          description: History of changes regarding the agreement status
          example:
          - id: ahist_ufJuwjMY21NVK4dkjee3
            status: SUCCEDED
            createdAt: '2023-03-26T20:24:27.123Z'
          items:
            $ref: '#/components/schemas/HistoryEntryResponse'
        revocations:
          type: array
          description: Agreement revocation attempts
          example:
          - id: rev_ufJuwjMY21NVK4dkjee3
            revocationStatus: REVOKED_BY_MERCHANT
            createdAt: '2023-03-26T20:24:27.123Z'
          items:
            $ref: '#/components/schemas/RevocationResponse'
        initialPaymentChargeId:
          type: string
          description: The payment charge ID of the initial charge generated by this agreement
        initialSchemeAuthorizationReference:
          type: string
          description: The initial scheme authorization reference, eg. for cards network transaction identifier (NTI)
          example: XPTO
        initialTransactionLinkReference:
          type: string
          description: 'Transaction Link Reference or Id (ex: Mastercard TLID) is a unique identifier for a transaction, used by some card networks for transaction chain linking, this is in addition to Network Transaction Identifiers. Provide the initial TLID when creating the subsequent Merchant-Initiated-Transactions.'
          example: atf3_8msFoZ6klReRDlQwn
        createdAt:
          type: string
          format: date-time
          description: The agreement creation timestamp in ISO 8601 format.
          example: '2023-03-26T20:24:27.123Z'
        updatedAt:
          type: string
          format: date-time
          description: The agreement update timestamp in ISO 8601 format.
          example: '2023-03-26T20:24:27.123Z'
        labels:
          type: object
          additionalProperties:
            type: string
            example: GTM_Campaign
            maxLength: 200
          description: Custom labels associated with this payment agreement.

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