Visa Payment Service API

The Payment web service is used for processing payments and sending payment remittance information to the appropriate suppliers.

Documentation

📖
GettingStarted
https://developer.visa.com/capabilities/pav/docs
📖
Authentication
https://developer.visa.com/capabilities/pav/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/suppliermatchingservice/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/suppliermatchingservice/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/vcms/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vcms/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/card-on-file-data-inquiry/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/card-on-file-data-inquiry/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/foreign_exchange/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/foreign_exchange/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/foreign_exchange/reference#tag/Foreign-Exchange-Rates-API/operation/ForeignExchangeRates_v2%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/paai/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/paai/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/paai/reference#tag/Funds-Transfer-Attributes-Inquiry-API/operation/Funds%20Transfer%20Inquiry_v5%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/vau/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vau/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vau/reference#tag/Issuer-Stop-Advice-API/operation/stopAdviceUsingPOST_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/vbds/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vbds/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vbds/reference#tag/Authorization-Data-API/operation/getAuthDataUsingPOST_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/vcpm/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vcpm/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vcpm/reference#tag/Visa-Card-Program-Enrollment/operation/enrollmentV2UsingPOST_v2%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-secure-remote-commerce/docs-getting-started
📖
Documentation
https://developer.visa.com/capabilities/visa-secure-remote-commerce/reference#tag/CTP-Checkout-API/operation/CTP%20Checkout%20API_v1%20-%20Latest
📖
Documentation
https://developer.visa.com/capabilities/visa-digital-enablement-lite/reference#tag/URL-Generation-API_/paths/1inapp1provision1appclip1url/post_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-merchant-screening-service/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/visa-merchant-screening-service/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/visa-merchant-screening-service/reference#tag/Termination-Inquiry-APIs/operation/RetroActive%20Alert%20of%20Terminated%20Merchants%20or%20Agent_v2%20-%20Latest
📖
Documentation
https://developer.visa.com/capabilities/vpa
📖
Documentation
https://developer.visa.com/capabilities/visa-in-app-provisioning
📖
Documentation
https://developer.visa.com/capabilities/merchant_search/docs
📖
Documentation
https://developer.visa.com/capabilities/vba/docs
📖
Documentation
https://developer.visa.com/capabilities/vmorc/docs
📖
Documentation
https://developer.visa.com/capabilities/visa_direct/docs
📖
Documentation
https://developer.visa.com/capabilities/atmlocator/docs
📖
Documentation
https://developer.visa.com/capabilities/vctc/docs

Specifications

Other Resources

OpenAPI Specification

visa-payment-service-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Foreign Exchange Rates Payment Service API
  description: The Payment web service is used for processing payments and sending payment remittance information to the appropriate suppliers.
  version: '1'
servers:
- url: https://sandbox.api.visa.com
  description: Sandbox server
security: []
tags:
- name: Payment Service
  description: The Payment web service is used for processing payments and sending payment remittance information to the appropriate suppliers.
paths:
  /vpa/v1/payment/GetPaymentDetailURL:
    post:
      tags:
      - Payment Service
      summary: Get Payment Detail URL
      description: ''
      operationId: Get Payment Detail URL
      requestBody:
        content:
          application/json:
            schema:
              required:
              - buyerId
              - clientId
              - messageId
              - originalMessageId
              type: object
              properties:
                buyerId:
                  maxLength: 25
                  type: string
                  description: Buyer ID is the buyer identifier as defined in Visa Payables Automation. Value format is 09.
                clientId:
                  maxLength: 25
                  type: string
                  description: Client ID field is a unique identification of the financial institution. This will be provided by Visa at the time of setup.
                messageId:
                  maxLength: 36
                  type: string
                  description: Unique identifier for this request.  Each request sent to VPA requires its own unique ID.
                accountNumber:
                  maxLength: 19
                  type: string
                  description: An existing Visa card account. Values- 09. Note- If the account number is passed, it should correspond to the card account number used for the payment.
                originalMessageId:
                  maxLength: 36
                  type: string
                  description: The messageID of the original process payment request for which the URL is needed.
            examples:
              Default:
                summary: Default
                value:
                  clientId: B2BWS_1_1_9999
                  messageId: '2017-04-06T03:47:20.000Z'
                  originalMessageId: 1486634011147
                  buyerId: 9999
                  accountNumber: 411111111111111
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  GetPaymentURLResponse:
                    required:
                    - messageId
                    - statusCode
                    - statusDesc
                    type: object
                    properties:
                      url:
                        maxLength: 400
                        type: string
                        description: URL for the credential verification application which will authenticate the user before presenting the payment details.
                      messageId:
                        maxLength: 36
                        type: string
                        description: Unique identifier which was sent in the request.
                      statusCode:
                        maxLength: 6
                        type: string
                        description: Status code of the response. It is alphanumeric. The values are specific to each method. For the details of the various error codes returned for this method refer to the "Error Codes" table below
                      statusDesc:
                        maxLength: 255
                        type: string
                        description: Status description of the response.
                    description: Success
        '400':
          description: Error Codes
          content:
            application/json:
              schema:
                type: object
                properties:
                  GURL001:
                    type: object
                    description: URL received successfully.
                  GURL003:
                    type: object
                    description: Invalid Client ID.
                  GURL004:
                    type: object
                    description: Invalid buyer ID
                  GURL005:
                    type: object
                    description: Invalid account number.
                  GURL025:
                    type: object
                    description: Bank or buyer is not subscribed.
                  GURL030:
                    type: object
                    description: Original message ID does not exist.
                  GURL035:
                    type: object
                    description: MessageID is required and cannot be more than 36 characters.
                  GURL043:
                    type: object
                    description: Original message ID is required and cannot be more than 36 characters.
                  GURL161:
                    type: object
                    description: Payment has already expired.
                  GURL165:
                    type: object
                    description: URL generation is in progress.
                  GURL166:
                    type: object
                    description: URL generation failed.
                  GURL167:
                    type: object
                    description: Payment was not processed successfully or is in progress.
      x-codegen-request-body-name: getpaymenturl
      x-operationVersions:
      - label: v1 - Latest
        operationPointer: '#/paths/~1vpa~1v1~1payment~1GetPaymentDetailURL/post'
        default: false
      x-hideTryIt: true
  /vpa/v1/payment/GetPaymentDetails:
    post:
      tags:
      - Payment Service
      summary: Get Payment Details
      description: ''
      operationId: Get Payment Details
      requestBody:
        content:
          application/json:
            schema:
              required:
              - buyerId
              - clientId
              - messageId
              - resultSetNo
              type: object
              properties:
                status:
                  maxLength: 1
                  type: string
                  description: Status of payment.  If you would like to get the details of payments in a particular status, you can pass it in this field.  The status will be used along with the date range filter if specified to get the payments.  <br> Valid values are M-Matched, U- UnMatched, R-Rejected, E-Expired, O-Error, A-All, C-Canceled.
                toDate:
                  maxLength: 8
                  type: string
                  description: Specifies the end of date range. Format is MMDDYYYY
                buyerId:
                  maxLength: 25
                  type: string
                  description: Buyer ID is the buyer identifier as defined in Visa Payables Automation. Value format is 09.
                clientId:
                  maxLength: 25
                  type: string
                  description: Client ID field is a unique identification of the financial institution. This will be provided by Visa at the time of setup.
                fromDate:
                  maxLength: 8
                  type: string
                  description: Specifies the beginning of date range for which the payment details is requested. Format is MMDDYYYY. If "FromDate" and "ToDate" is not provided, the system will retrieve the last 9 months data. <br> <br>Note-  The system retrieves only last 250 payments made during the specified date range sent in the initial request. User can make subsequent calls to retrieve additional data.
                messageId:
                  maxLength: 36
                  type: string
                  description: Unique identifier for this request.  Each request sent to VPA requires its own unique ID.
                resultSetNo:
                  maxLength: 3
                  type: string
                  description: Result Set Number.
                trackingNumber:
                  maxLength: 36
                  type: string
                  description: The MessageID of the original process payment request for which the payment is needed.
            examples:
              Default:
                summary: Default
                value:
                  fromDate: 02082017
                  clientId: B2BWS_1_1_9999
                  toDate: 02082017
                  messageId: '2017-04-06T03:47:20.000Z'
                  resultSetNo: '1'
                  buyerId: 9999
                  trackingNumber: 9999999958
                  status: A
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  GetPaymentResponse:
                    required:
                    - hasMoreElements
                    - messageId
                    - resultSetNo
                    - statusCode
                    - statusDesc
                    - totalRecordCount
                    type: object
                    properties:
                      payments:
                        required:
                        - accountNumber
                        - currencyCode
                        - paymentExpiryDate
                        - paymentGrossAmount
                        type: object
                        properties:
                          invoices:
                            type: array
                            description: This complex element contains the details about the invoices associated with the payment.
                            items:
                              type: object
                              properties:
                                invoiceDate:
                                  maxLength: 10
                                  type: string
                                  description: This contains the date of the invoice being paid. Format is yyyy-MM-dd
                                invoiceAmount:
                                  type: number
                                  description: Invoice amount. maximum length is 16. Maximum number of decimals is two.Format is XXXXXXXXXX9999.99
                                invoiceNumber:
                                  maxLength: 30
                                  type: string
                                  description: Invoice Number.
                                purchaseOrderDate:
                                  maxLength: 10
                                  type: string
                                  description: 'This contains the date on which the  purchase order was created. Format is YYYY-MM-DD '
                                purchaseOrderNumber:
                                  maxLength: 20
                                  type: string
                                  description: This contains the purchase order number associated with the invoice.
                                partialPaymentIndicator:
                                  maxLength: 3
                                  type: string
                                  description: This field is used to indicate a partial payment. Valid values are Yes, No.
                          supplier:
                            required:
                            - supplierID
                            type: object
                            properties:
                              supplierID:
                                maxLength: 30
                                type: string
                                description: Identifier used by the buyer to identify the supplier. This has to be unique for a buyer. It cannot contain spaces.
                              supplierName:
                                maxLength: 50
                                type: string
                                description: Name of supplier to be paid. It is mandatory for new suppliers.
                              primaryEmailAddress:
                                maxLength: 70
                                type: string
                                description: Email address
                              alternateEmailAddresses:
                                type: array
                                description: This complex element can have up to five alternate email addresses.
                                items:
                                  type: object
                                  properties:
                                    localAlternateEmailAddress:
                                      maxLength: 70
                                      type: string
                                      description: Supplier CC email address.
                            description: Supplier Class
                          paymentType:
                            maxLength: 1
                            type: string
                            description: "Type of payment processing- \n  1 - Payment Instruction \n  2 - Payment Requisition"
                          currencyCode:
                            maxLength: 3
                            type: string
                            description: Payment currency code.  ISO alpha currency code will be returned in the response.
                          accountNumber:
                            maxLength: 19
                            type: string
                            description: Account number used for making the payment.
                          manualMatchStatus:
                            maxLength: 10
                            type: string
                            description: 'Valid values are I or G - Reconciled    U - Unreconciled      P - Partially Reconciled   Y - Forcibly Reconciled   '
                          paymentExpiryDate:
                            maxLength: 10
                            type: string
                            description: 'The date by which a supplier must collect this payment. Format is YYYY-MM-DD.  '
                          systemMatchStatus:
                            maxLength: 10
                            type: string
                            description: Valid values are Matched, Unmatched, and Expired.
                          paymentDescription:
                            type: string
                            description: Description of the payment.
                          paymentGrossAmount:
                            maxLength: 16
                            type: string
                            description: Payment gross amount.  Format is 99999999999999.99
                          paymentRequestDate:
                            maxLength: 10
                            type: string
                            description: 'Payment requested date. Format is YYYY-MM-DD. '
                        description: Payments Class.
                      messageId:
                        maxLength: 36
                        type: string
                        description: Unique identifier which was sent in the request.
                      statusCode:
                        maxLength: 6
                        type: string
                        description: Status code of the response. It is alphanumeric. The values are specific to each method.  For the details of the various error codes returned for this method refer to the "Error Codes" table below.
                      statusDesc:
                        maxLength: 255
                        type: string
                        description: Status description of the response.
                      resultSetNo:
                        maxLength: 3
                        type: string
                        description: Result Set Number.
                      hasMoreElements:
                        maxLength: 1
                        type: string
                        description: Value is "Y" if more records available. Value is "N" if there are no more records available.
                      totalRecordCount:
                        maxLength: 20
                        type: string
                        description: Total Payment Records Count for the requested parameters.
                    description: OK
        '400':
          description: Error Codes
          content:
            application/json:
              schema:
                type: object
                properties:
                  GPD002:
                    type: object
                    description: Message id is not Unique
                  GPD005:
                    type: object
                    description: Message ID is required.
                  GPD006:
                    type: object
                    description: Message ID cannot be more than 36 characters.
                  GPD007:
                    type: object
                    description: Message ID is duplicate.
                  GPD008:
                    type: object
                    description: Client ID is required.
                  GPD009:
                    type: object
                    description: Client ID cannot be more than 25 characters.
                  GPD010:
                    type: object
                    description: Invalid client ID.
                  GPD011:
                    type: object
                    description: Buyer ID is required.
                  GPD012:
                    type: object
                    description: Buyer ID cannot be more than 15 characters.
                  GPD013:
                    type: object
                    description: Invalid buyer ID.
                  GPD539:
                    type: object
                    description: Get Payment Details completed successfully.
                  GPD540:
                    type: object
                    description: Get Payment Details failed with error.
                  GPD541:
                    type: object
                    description: Tracking number does not belong to this buyer.
                  GPD542:
                    type: object
                    description: Tracking number contains invalid characters.
                  GPD543:
                    type: object
                    description: Tracking number should not be more than 10 characters.
                  GPD544:
                    type: object
                    description: Tracking number does not exist in the system.
                  GPD545:
                    type: object
                    description: Status code contains invalid characters.
                  GPD546:
                    type: object
                    description: Invalid status code.
                  GPD547:
                    type: object
                    description: Status code should not be more than 1 character.
                  GPD548:
                    type: object
                    description: Invalid From Date format.
                  GPD549:
                    type: object
                    description: From Date should not be more than 6 characters.
                  GPD550:
                    type: object
                    description: From Date should not be in the future.
                  GPD551:
                    type: object
                    description: From Date contains invalid characters.
                  GPD552:
                    type: object
                    description: Invalid To Date format.
                  GPD553:
                    type: object
                    description: To Date should not be more than 6 characters.
                  GPD554:
                    type: object
                    description: To Date should not be in the past.
                  GPD555:
                    type: object
                    description: To Date contains invalid characters.
                  GPD556:
                    type: object
                    description: To Date should be greater than From Date
                  GPD602:
                    type: object
                    description: The value you passed in the ResultSetNo field is invalid
      x-codegen-request-body-name: getpaymentdetails
      x-operationVersions:
      - label: v1 - Latest
        operationPointer: '#/paths/~1vpa~1v1~1payment~1GetPaymentDetails/post'
        default: false
  /vpa/v1/payment/ResendPayment:
    post:
      tags:
      - Payment Service
      summary: Resend Payment
      description: ''
      operationId: Resend Payment
      requestBody:
        content:
          application/json:
            schema:
              required:
              - buyerId
              - clientId
              - messageId
              - originalMessageId
              type: object
              properties:
                buyerId:
                  maxLength: 25
                  type: string
                  description: Buyer ID is the buyer identifier as defined in Visa Payables Automation. Value format is 09.
                clientId:
                  maxLength: 25
                  type: string
                  description: Client ID field is a unique identification of the financial institution. This will be provided by Visa at the time of setup.
                messageId:
                  maxLength: 36
                  type: string
                  description: Unique identifier for this request.  Each request sent to VPA requires its own unique ID.
                emailNotes:
                  maxLength: 256
                  type: string
                  description: This contains the text to be included on email notifications and remittance advice.  If this field is not provided, the value from the original request will be used.
                accountNumber:
                  maxLength: 19
                  type: string
                  description: An existing Visa card account. Values are 09. Note- If the account number is passed, it should correspond to the card account number used for the payment.
                expirationDate:
                  maxLength: 10
                  type: string
                  description: The date by which a supplier must collect his payment. Format is YYYY-MM-DD
                originalMessageId:
                  maxLength: 36
                  type: string
                  description: The messageID of the original process payment request that is being resent.
                primaryEmailAddress:
                  maxLength: 70
                  type: string
                  description: This contains the email address for the supplier that will receive the payment instruction. It must be a valid email address. If the primary email address is provided, the payment advice will be sent to the new primary email address provided in the request. If it is not, the email address in the original request will be used.
                alternateEmailAddresses:
                  type: array
                  description: This complex element will contain up to five alternate email addresses.
                  items:
                    type: object
                    properties:
                      localAlternateEmailAddress:
                        maxLength: 70
                        type: string
                        description: Supplier CC email address.
                supplierProfileUpdateIndicator:
                  maxLength: 1
                  type: string
                  description: This field contains value as Y if supplier profile has to be updated and N if supplier profile should not be updated. By default, the system will not update the supplier profile with the new values sent in the request.
            examples:
              Default:
                summary: Default
                value:
                  alternateEmailAddresses:
                  - alternateEmailAddress: aaa1@bbb.com
                  - alternateEmailAddress: aaa2@bbb.com
                  - alternateEmailAddress: aaa3@bbb.com
                  - alternateEmailAddress: aaa4@bbb.com
                  - alternateEmailAddress: aaa5@bbb.com
                  emailNotes: resend payment
                  clientId: B2BWS_1_1_9999
                  supplierProfileUpdateIndicator: Y
                  messageId: '2017-04-06T03:47:20.000Z'
                  originalMessageId: 1486626459243
                  buyerId: 9999
                  accountNumber: 4111111111111111
                  primaryEmailAddress: aaa@bbb.com
                  expirationDate: '2017-03-30'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  ResendResponse:
                    required:
                    - messageId
                    - statusCode
                    - statusDesc
                    type: object
                    properties:
                      messageId:
                        maxLength: 36
                        type: string
                        description: Unique identifier which was sent in the request.
                      statusCode:
                        maxLength: 6
                        type: string
                        description: Status code of the response. It is alphanumeric. The values are specific to each method. For the details of the various error codes returned for this method refer to the "Error Codes" table.
                      statusDesc:
                        maxLength: 255
                        type: string
                        description: Status description of the response.
                    description: Success
        '400':
          description: Error Codes
          content:
            application/json:
              schema:
                type: object
                properties:
                  RSP001:
                    type: object
                    description: Resend Payment initiated successfully.
                  RSP003:
                    type: object
                    description: Invalid Client ID.
                  RSP004:
                    type: object
                    description: Invalid buyer ID.
                  RSP005:
                    type: object
                    description: Invalid account number.
                  RSP012:
                    type: object
                    description: Invalid primary email address.
                  RSP013:
                    type: object
                    description: Invalid alternate email address.
                  RSP025:
                    type: object
                    description: Bank is not subscribed.
                  RSP029:
                    type: object
                    description: Original message ID and account number do not match.
                  RSP030:
                    type: object
                    description: Original message ID does not exist.
                  RSP035:
                    type: object
                    description: Invalid message ID.
                  RSP043:
                    type: object
                    description: Invalid original message ID.
                  RSP049:
                    type: object
                    description: ExpirationDate is invalid. Supported date format is YYYY-MM-DD.
                  RSP161:
                    type: object
                    description: Payment has already expired.
                  RSP162:
                    type: object
                    description: SupplierProfileUpdateIndicator is invalid.
                  RSP163:
                    type: object
                    description: PrimaryEmailAddress is required.
                  RSP167:
                    type: object
                    description: Payment was not processed successfully or is in progress.
                  RSP173:
                    type: object
                    description: Invalid email notes.
                  RSP182:
                    type: object
                    description: Invalid alternate address tag.
                  RSP186:
                    type: object
                    description: Expiration Date is invalid. Expiration Date cannot be past date
                  RSP029a:
                    type: object
                    description: Original message ID and account number do not match.
      x-codegen-request-body-name: resendpayment
      x-operationVersions:
      - label: v1 - Latest
        operationPointer: '#/paths/~1vpa~1v1~1payment~1ResendPayment/post'
        default: false
  /pop/v1/recipes/processPayment:
    post:
      tags:
      - Payment Service
      summary: Process Payment - Recipe
      description: ProcessPayment Recipe API
      requestBody:
        description: Process payment request payload
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessPaymentRequestDTO'
            examples:
              Process Payment Recipe:
                summary: Process Payment Recipe
                value:
                  actionType: 1
                  corporate_internal_id: 1-2-3029-11181
                  payment:
                    cardAccountExpiryDate: 10/2025
                    paymentExpiryDate: '2025-03-10'
                    accountLimit: 100
                    invoices:
                    - purchaseOrderDate: '2017-02-01'
                      purchaseOrderNumber: PO1234
                      invoiceNumber: INV01
                      invoiceAmount: 100
                      invoiceDate: '2017-02-01'
                    - purchaseOrderDate: '2017-03-01'
                      purchaseOrderNumber: PO1234
                      invoiceNumber: INV02
                      invoiceAmount: 200
                      invoiceDate: '2017-03-01'
                    supplier:
                      supplierName: TestVPASupplier111111
                      alternateEmailAddresses:
                      - alternateEmailAddress: aaa1@bbb.com
                      - alternateEmailAddress: aaa2@bbb.com
                      - alternateEmailAddress: aaa3@bbb.com
                      - alternateEmailAddress: aaa4@bbb.com
                      - alternateEmailAddress: aaa5@bbb.com
                      emailNotes: Email Notes
                      supplierID: 111111
                      supplierCity: Austin
                      supplierAddressLine2: Address2
                      supplierAddressLine1: Address1
                      supplierState: TX
                      supplierCountryCode: USA
                      supplierPostalCode: 78759
                      primaryEmailAddress: aaa@bbb.com
                    accountType: 1
                    accountNumber: 48X7XXXX6XX7XX369
                    currencyCode: USD
                    paymentGrossAmount: 300
                    paymentRequestDate: '2017-02-01'
                    paymentType: CCC
                  buyerId: 11181
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
        '201':
          description: Created
          content: {}
        '401':
          description: Unauthorized
          content: {}
        '403':
          description: Forbidden
          content: {}
        '404':
          description: Not Found
          content: {}
      x-codegen-request-body-name: processPaymentRequestDTO
      x-operationVersions:
      - label: v1 - Latest
        operationPointer: '#/paths/~1pop~1v1~1recipes~1processPayment/post'
        default: false
      x-hideTryIt: true
  /vpa/v1/payment/CancelPayment:
    post:
      tags:
      - Payment Service
      summary: Cancel Payment
      description: ''
      operationId: Cancel Payment
      requestBody:
        content:
          application/json:
            schema:
              required:
              - buyerId
              - clientId
              - messageId
              - originalMessageId
              type: object
              properties:
                buyerId:
                  maxLength: 15
                  type: string
                  description: Buyer ID is the 

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