openapi: 3.0.3
info:
  title: Transactions service
  description: This is an API reference for the Transaction service API.
  version: 1.0.0
servers:
  - url: https://api-services.pxp.io/api/v1
    description: Production environment
  - url: https://api-services.test.pxp.io/api/v1
    description: Sandbox environment
paths:
  /transactions:
    post:
      summary: Initiate a transaction
      description: >-
        The `/transactions` endpoint enables the initiation of transactions,
        supporting various transaction methods, including card and alternative
        payments. It facilitates authoristions, tokenisation, recurring
        payments, and incorporates security enhancements, offering a versatile
        solution for payment processing across both online and instore.
      operationId: initiate-a-transaction
      requestBody:
        description: Initiate a transaction
        content:
          application/json:
            schema:
              description: >-
                The `transactionRequest` object encapsulates all essential
                details required for initiating and processing a transaction. It
                includes funding data, address verification, transaction
                amounts, merchant information, shopper details, recurring
                payment information, site identifier, 3D Secure details, and
                transaction method.
              properties:
                merchant:
                  $ref: '#/components/schemas/merchant'
                site:
                  $ref: '#/components/schemas/site'
                merchantTransactionId:
                  $ref: '#/components/schemas/merchantTransactionId'
                merchantTransactionDate:
                  $ref: '#/components/schemas/merchantTransactionDate'
                transactionMethod:
                  $ref: '#/components/schemas/transactionMethod'
                fundingData:
                  $ref: '#/components/schemas/fundingData'
                addressVerification:
                  $ref: '#/components/schemas/addressVerification'
                identityVerification:
                  $ref: '#/components/schemas/identityVerification'
                amounts:
                  $ref: '#/components/schemas/amounts'
                shopper:
                  $ref: '#/components/schemas/shopper'
                shopperSecurityData:
                  $ref: '#/components/schemas/shopperSecurityData'
                recurring:
                  $ref: '#/components/schemas/recurring'
                threeDSecureData:
                  $ref: '#/components/schemas/threeDSecureData'
                psd2Data:
                  $ref: '#/components/schemas/psd2Data'
                dccData:
                  $ref: '#/components/schemas/dccData'
                riskScreeningData:
                  $ref: '#/components/schemas/riskScreeningData'
              required:
                - fundingData
                - amounts
                - merchant
                - merchantTransactionId
                - merchantTransactionDate
                - site
                - transactionMethod
              type: object
              x-readme-ref-name: transactionRequest
            examples:
              Ecom Card Authorisation:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Dynamic Descriptor):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                    dynamicDescriptors:
                      cardAcceptorName: ACME LTD
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Shopper Security Data):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
                  shopperSecurityData:
                    ipAddress: 127.2.5.10
                    deviceFingerprint: >-
                      4eb53ed8428b6fed13a6952177640972248af1001a3fc72eaf57ad5c09d54bcd
              Ecom Card Authorisation (Gateway Token):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Scheme Token without Token Cryptogram):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      schemeTokenNumber: '4837261112345678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    cardholderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                    electronicCommerceIndicator: '07'
                    threeDSecureVersion: 2.1.0
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Scheme Tokenisation with Token Cryptogram):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      schemeTokenNumber: '4837261112345678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      schemeTokenCryptogram: AAEBAwQjSQAAXXXXXXXJYe0BbQA=
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    cardholderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                    electronicCommerceIndicator: '07'
                    threeDSecureVersion: 2.1.0
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (ApplePay with Decrypted Token):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    cardholderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                    electronicCommerceIndicator: '05'
                    threeDSecureVersion: 2.1.0
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (CVC):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (AVS):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (3DS2):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (with SCA Exemption):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '07'
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  psd2Data:
                    scaExemption: lowValue
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Card on File with Shoppers Consent):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    recurringProcessingModel: CardOnFileShopperConsent
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Card on File with Shopper Initiated):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    country: GB
                    houseNumberOrName: '120'
                    postalCode: EN87JJ
                  recurring:
                    processingModel: CardOnFileShopperInitiated
                    schemeTransactionId: TX1234567890123456
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Merchant Initiated Re-Authorisation):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedReAuthorisation
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Merchant Initiated Resubmission):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedResubmission
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Merchant Initiated Delayed Charge):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: merchantInitiatedDelayedCharge
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Merchant Initiated No Show):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedNoShow
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Authorisation (Merchant Initiated Subsequent Recurring):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedSubsequentRecurring
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (with Gateway Tokenisation):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (with CVC):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (with AVS):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (with 3DS 2 Data):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Card on File with Shoppers Consent):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      cardNotPresent:
                        primaryAccountNumber: '4111111111111111'
                        expiryMonth: '03'
                        expiryYear: '2025'
                        holderName: Mr John Doe
                        cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    recurringProcessingModel: CardOnFileShopperConsent
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Card on File with Shopper Initiated):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    country: GB
                    houseNumberOrName: '120'
                    postalCode: EN87JJ
                  recurring:
                    processingModel: CardOnFileShopperInitiated
                    schemeTransactionId: TX1234567890123456
                  threeDSecureData:
                    threeDSecureVersion: 2.1.0
                    electronicCommerceIndicator: '05'
                    cardHolderAuthenticationVerificationValue: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
                    directoryServerTransactionId: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated Re-Authorisation):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedReAuthorisation
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated Resubmission):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedResubmission
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated Delayed Charge):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedDelayedCharge
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated No Show):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedNoShow
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated Initial Recurring):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedInitialRecurring
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (Merchant Initiated Subsequent Recurring):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      gatewayTokenId: 2357e042-2bf0-4886-8d9d-718fa5909761
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  recurring:
                    processingModel: MerchantInitiatedSubsequentRecurring
                    schemeTransactionId: TX1234567890123456
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Ecom Card Purchase (with risk screening data):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Purchase
                    entryType: Ecom
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    email: john.doe@example.com
                    firstName: John
                    lastName: Doe
                    countryCode: US
                    state: CA
                    city: San Francisco
                    postalCode: '94102'
                    street: Market Street
                    houseNumberOrName: '123'
                    phoneNumber: +1-555-123-4567
                    addressLine2: Apt 4B
                  riskScreeningData:
                    performRiskScreening: true
                    excludeDeviceData: true
                    deviceSessionId: session_xyz123456
                    items:
                      - price: 4525
                        quantity: 2
                        category: Electronics
                        sku: WIDGET_001
                      - price: 1000
                        quantity: 1
                        category: Electronics
                        sku: WIDGET_002
                    fulfillments:
                      - type: Shipped
                        recipientPerson:
                          name:
                            first: Jane
                            middle: Marie
                            family: Smith
                            prefix: Ms.
                            suffix: null
                            preferred: Jane
                          address:
                            line1: 456 Shipping Street
                            line2: Apartment 2B
                            city: London
                            region: Greater London
                            countryCode: GB
                            postalCode: SW2B2BB
                          email: jane.smith@example.com
                          phoneNumber: '+442079460958'
                    transaction:
                      subtotal: 10050
              Moto Card Authorisation:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Moto
                    fundingType: Card
                  fundingData:
                    card:
                      number: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Moto Card Authorisation (with CVC):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Moto
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                      cardVerificationCode: '123'
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Moto Card Authorisation (with AVS):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Moto
                    fundingType: Card
                  fundingData:
                    card:
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      holderName: Mr John Doe
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
                  addressVerification:
                    houseNumberOrName: en
                    postalCode: ''
                    country: GB
                  shopper:
                    id: Shopper_01
                    firstName: John
                    lastName: Doe
                    dateOfBirth: '1980-03-01'
                    email: shopper@example.com
              Instore Card Authorisation (Icc with P2PE):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: ChipAndPin
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        encryptedPayload: >-
                          48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
                      emvData:
                        applicationIdentifier: A0000000041010
                        applicationInterchangeProfile: '5800'
                        applicationLabel: MasterCard
                        applicationPreferredName: Mastercard
                        applicationTransactionCounter: '0003'
                        applicationUsageControl: FF00
                        applicationVersionNumber: '0002'
                        authorisationRequestCryptogram: 975C5CE3ED29C82B
                        cryptogramInformationData: '40'
                        cryptogramTransactionType: '00'
                        cardHolderVerificationMethodResults: '410302'
                        dedicatedFileName: fdsffsr4rwtgfgdsgsfgdfgdsg
                        issuerActionCodesDefault: F040642000
                        issuerActionCodesDenial: '0010880000'
                        issuerActionCodesOnline: F0E064F800
                        issuerApplicationData: '020000000000'
                        pinBlock:
                          ksn: '43243443244234'
                          pin: '31232139097491247234'
                        primaryAccountNumberSequenceNumber: '00'
                        pointOfSaleEntryMode1: '3'
                        pointOfSaleEntryMode2: '2'
                        terminalCapabilities: E0F8C8
                        terminalCountryCode: '826'
                        terminalType: '22'
                        terminalVerificationResult: '420000E000'
                        track2EquivalentData: 87yf89f87yfs87fyhsihfuijkhkfdfsdf
                        transactionStatusInformation: E800
                        unpredictableNumber: '68396050'
                        additionalTags: 9F6604FFFFFFFF9F6C02FFFF
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
              Instore Card Authorisation (IccContactless with P2PE):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: cardContactless
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        encryptedPayload: >-
                          48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
                      emvData:
                        applicationIdentifier: A0000000041010
                        applicationInterchangeProfile: '5800'
                        applicationLabel: MasterCard
                        applicationPreferredName: Mastercard
                        applicationTransactionCounter: '0003'
                        applicationUsageControl: FF00
                        applicationVersionNumber: '0002'
                        authorisationRequestCryptogram: 975C5CE3ED29C82B
                        contactless:
                          discretionaryData: 4E2JA4F4
                          formFactor: 6EfJ
                        cryptogramInformationData: '40'
                        cryptogramTransactionType: '00'
                        cardHolderVerificationMethodResults: '410302'
                        dedicatedFileName: fdsffsr4rwtgfgdsgsfgdfgdsg
                        issuerActionCodesDefault: F040642000
                        issuerActionCodesDenial: '0010880000'
                        issuerActionCodesOnline: F0E064F800
                        issuerApplicationData: '020000000000'
                        pinBlock:
                          ksn: '43243443244234'
                          pin: '31232139097491247234'
                        primaryAccountNumberSequenceNumber: '00'
                        pointOfSaleEntryMode1: '3'
                        pointOfSaleEntryMode2: '2'
                        terminalCapabilities: E0F8C8
                        terminalCountryCode: '826'
                        terminalType: '22'
                        terminalVerificationResult: '420000E000'
                        track2EquivalentData: 87yf89f87yfs87fyhsihfuijkhkfdfsdf
                        transactionStatusInformation: E800
                        unpredictableNumber: '68396050'
                        additionalTags: 9F6604FFFFFFFF9F6C02FFFF
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
              Instore Card Authorisation (Keyed with P2PE):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: KeyEntry
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        encryptedPayload: >-
                          48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
              Instore Card Authorisation (Swiped with P2PE):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: Swiped
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        encryptedPayload: >-
                          48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
              Instore Card Authorisation (Icc without P2PE):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: ChipAndPin
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        primaryAccountNumber: '4111111111111111'
                        expiryMonth: '03'
                        expiryYear: '2025'
                        holderName: Mr John Doe
                        cardVerificationCode: 123
                      emvData:
                        applicationIdentifier: A0000000041010
                        applicationInterchangeProfile: '5800'
                        applicationLabel: MasterCard
                        applicationPreferredName: Mastercard
                        applicationTransactionCounter: '0003'
                        applicationUsageControl: FF00
                        applicationVersionNumber: '0002'
                        authorisationRequestCryptogram: 975C5CE3ED29C82B
                        cryptogramInformationData: '40'
                        cryptogramTransactionType: '00'
                        cardHolderVerificationMethodResults: '410302'
                        dedicatedFileName: fdsffsr4rwtgfgdsgsfgdfgdsg
                        issuerActionCodesDefault: F040642000
                        issuerActionCodesDenial: '0010880000'
                        issuerActionCodesOnline: F0E064F800
                        issuerApplicationData: '020000000000'
                        pinBlock:
                          ksn: '43243443244234'
                          pin: '31232139097491247234'
                        primaryAccountNumberSequenceNumber: '00'
                        pointOfSaleEntryMode1: '3'
                        pointOfSaleEntryMode2: '2'
                        terminalCapabilities: E0F8C8
                        terminalCountryCode: '826'
                        terminalType: '22'
                        terminalVerificationResult: '420000E000'
                        track2EquivalentData: 87yf89f87yfs87fyhsihfuijkhkfdfsdf
                        transactionStatusInformation: E800
                        unpredictableNumber: '68396050'
                        additionalTags: 9F6604FFFFFFFF9F6C02FFFF
                  amounts:
                    transaction: 30.32
                    currencyCode: EUR
              Instore Card Authorisation (with DCC data):
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27 08:51:02.826445+00:00'
                  transactionMethod:
                    intent: Authorisation
                    entryType: Instore
                    fundingType: Card
                  fundingData:
                    card:
                      pointOfInteraction:
                        entryType: CardContactless
                        interfaceSerialNumber: '75040371'
                        kernelApplicationVersion: 4.21.35290_WP
                        deviceModelName: Castles Saturn F1000
                        operatingSystemVersion: release-31014000
                        pointOfSaleId: '001'
                        pointOfSaleApplicationVersion: 4.23.060.0
                        serialNumber: 275-040-371
                        storeAndForwardType: None
                      securityLevel:
                        encryptedPayload: >-
                          48BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplogQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
                      emvData:
                        applicationIdentifier: A0000000041010
                        applicationInterchangeProfile: '5800'
                        applicationLabel: MasterCard
                        applicationPreferredName: Mastercard
                        applicationTransactionCounter: '0003'
                        applicationUsageControl: FF00
                        applicationVersionNumber: '0002'
                        authorisationRequestCryptogram: 975C5CE3ED29C82B
                        contactless:
                          discretionaryData: 4E2JA4F4
                          formFactor: 6EfJ
                        cryptogramInformationData: '40'
                        cryptogramTransactionType: '00'
                        cardHolderVerificationMethodResults: '410302'
                        dedicatedFileName: fdsffsr4rwtgfgdsgsfgdfgdsg
                        issuerActionCodesDefault: F040642000
                        issuerActionCodesDenial: '0010880000'
                        issuerActionCodesOnline: F0E064F800
                        issuerApplicationData: '020000000000'
                        pinBlock:
                          ksn: '43243443244234'
                          pin: '31232139097491247234'
                        primaryAccountNumberSequenceNumber: '00'
                        pointOfSaleEntryMode1: '3'
                        pointOfSaleEntryMode2: '2'
                        terminalCapabilities: E0F8C8
                        terminalCountryCode: '826'
                        terminalType: '22'
                        terminalVerificationResult: '420000E000'
                        track2EquivalentData: 87yf89f87yfs87fyhsihfuijkhkfdfsdf
                        transactionStatusInformation: E800
                        unpredictableNumber: '68396050'
                        additionalTags: 9F6604FFFFFFFF9F6C02FFFF
                  amounts:
                    transaction: 100
                    currencyCode: USD
                  dccData:
                    rateSelectedIndicator: Selected
                    amounts:
                      local:
                        transaction: 2.5
                        currencyCode: GBP
                      cardholder:
                        transaction: 2.98
                        currencyCode: EUR
                    exchangeRate: 1.193665
                    providerData:
                      provider: Elavon
                      referenceId: '25092610071199'
                      terminalId: '210011226201'
                    markupRate: 3.92
                    disclaimer: This is an example disclaimer
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                properties:
                  state:
                    $ref: '#/components/schemas/state'
                  stateData:
                    $ref: '#/components/schemas/stateData'
                  approvalCode:
                    $ref: '#/components/schemas/approvalCode'
                  merchantTransactionDate:
                    $ref: '#/components/schemas/merchantTransactionDate'
                  merchantTransactionId:
                    $ref: '#/components/schemas/merchantTransactionId'
                  systemTransactionId:
                    $ref: '#/components/schemas/systemTransactionId'
                  providerTransactionId:
                    type: string
                    description: >-
                      A unique identifier assigned by the financial service
                      provider for the transaction. It facilitates tracking,
                      reconciliation, and support processes.
                    x-readme-ref-name: providerTransactionId
                  fundingData:
                    description: Details about the payment method used for the transaction.
                    properties:
                      cardScheme:
                        $ref: '#/components/schemas/cardScheme'
                      maskedPrimaryAccountNumber:
                        $ref: '#/components/schemas/maskedPrimaryAccountNumber'
                      expiryMonth:
                        $ref: '#/components/schemas/expiryMonth'
                      expiryYear:
                        $ref: '#/components/schemas/expiryYear'
                      gatewayTokenId:
                        $ref: '#/components/schemas/gatewayTokenId'
                      schemeTokenNumber:
                        $ref: '#/components/schemas/schemeTokenNumber'
                      cardVerificationCodeResult:
                        $ref: '#/components/schemas/cardVerificationCodeResult'
                      addressVerificationServiceResult:
                        $ref: '#/components/schemas/addressVerificationServiceResult'
                      nameVerificationResult:
                        $ref: '#/components/schemas/nameVerificationResult'
                      providerResponse:
                        description: >-
                          The response from the payment provider containing
                          details about the transaction processing outcome.
                        properties:
                          provider:
                            $ref: '#/components/schemas/providerResponseName'
                          code:
                            $ref: '#/components/schemas/providerResponseCode'
                          message:
                            $ref: '#/components/schemas/providerResponseMessage'
                          merchantId:
                            $ref: '#/components/schemas/providerResponseMerchantId'
                          terminalId:
                            description: >-
                              The unique identifier assigned to the terminal
                              used for the transaction processing.
                            example: '75836665'
                            type: string
                            x-readme-ref-name: providerResponseTerminalId
                          cardVerificationCodeResult:
                            $ref: '#/components/schemas/providerResponseCvcResult'
                          addressVerificationServiceResult:
                            $ref: '#/components/schemas/providerResponseAvsResult'
                          emvDataResponse:
                            $ref: '#/components/schemas/emvDataResponse'
                          paymentAccountReference:
                            $ref: '#/components/schemas/paymentAccountReference'
                          schemeTransactionId:
                            $ref: '#/components/schemas/schemeTransactionId'
                          schemeTransactionLinkId:
                            $ref: '#/components/schemas/schemeTransactionLinkId'
                          electronicCommerceIndicatorAdjustment:
                            $ref: >-
                              #/components/schemas/electronicCommerceIndicatorAdjustment
                          merchantAdvice:
                            $ref: '#/components/schemas/merchantAdvice'
                          settlementDate:
                            $ref: '#/components/schemas/settlementDate'
                  dccResult:
                    type: object
                    description: >-
                      Details about the DCC (Dynamic Currency Conversion)
                      result, including the rate selected indicator, amounts,
                      mark-up rate, commission percentage, exchange rate,
                      provider data, and DCC disclosure.
                    properties:
                      rateSelectedIndicator:
                        type: string
                        description: The selected rate for the DCC transaction.
                        enum:
                          - NotSelected
                          - Selected
                          - NotAvailable
                          - CardNotEligible
                          - Error
                      amounts:
                        type: object
                        description: >-
                          Details about the transaction amount in the local
                          currency and the cardholder's currency.
                        properties:
                          local:
                            type: object
                            description: >-
                              Details about the transaction amount in the local
                              currency.
                            properties:
                              transaction:
                                type: number
                                description: >-
                                  The amount of the transaction in the local
                                  currency.
                                example: 100
                              currencyCode:
                                type: string
                                description: >-
                                  The currency code of the local currency, in
                                  ISO 4217 format.
                                example: USD
                                maxLength: 3
                          cardHolder:
                            type: object
                            description: >-
                              Details about the transaction in the cardholder's
                              currency.
                            properties:
                              transaction:
                                type: number
                                description: >-
                                  The amount of the transaction in the
                                  cardholder's currency.
                                example: 85.5
                              currencyCode:
                                type: string
                                description: >-
                                  The currency code of the cardholder's
                                  currency, in ISO 4217 format.
                                example: EUR
                      markUpRate:
                        type: object
                        description: >-
                          Details about the mark-up rate for the DCC
                          transaction.
                        properties:
                          message:
                            type: string
                            description: >-
                              The message about the mark-up rate for the DCC
                              transaction.
                            example: >-
                              A 3.5% markup has been applied over the base
                              exchange rate.
                            maxLength: 255
                          percentage:
                            type: number
                            description: >-
                              The percentage of the mark-up rate for the DCC
                              transaction.
                            example: 3.5
                          language:
                            type: string
                            description: The language of the message.
                            example: en
                            maxLength: 2
                      commissionPercent:
                        type: number
                        description: The commission percentage for the DCC transaction.
                        example: 2.1
                      exchangeRate:
                        type: object
                        description: >-
                          Details about the exchange rate for the DCC
                          transaction.
                        properties:
                          rate:
                            type: number
                            description: >-
                              The rate of the exchange rate for the DCC
                              transaction.
                            example: 1.44
                          source:
                            type: string
                            description: >-
                              The source of the exchange rate for the DCC
                              transaction.
                            example: European Central Bank
                            maxLength: 100
                          sourceDate:
                            type: string
                            description: >-
                              The date of the exchange rate for the DCC
                              transaction.
                            example: '2020-04-02T14:29:15.8626809+01:00'
                            maxLength: 50
                      providerData:
                        type: object
                        description: Details about the DCC provider.
                        properties:
                          name:
                            type: string
                            description: The name of the DCC provider.
                            example: Elavon Merchant Services
                            maxLength: 100
                          referenceId:
                            type: string
                            description: The reference ID provided by the DCC provider.
                            example: '3213123213'
                            maxLength: 80
                          terminalId:
                            type: string
                            description: The terminal ID assigned by the DCC provider.
                            example: TID67777
                            maxLength: 30
                      dccDisclosure:
                        type: object
                        description: Details about the DCC disclosure.
                        properties:
                          message:
                            type: string
                            description: >-
                              The message of the DCC disclosure for the DCC
                              transaction.
                            example: >-
                              You are offered to pay in EUR. This includes a
                              3.5% commission above the base rate of 0.9245
                              provided by Elavon.
                            maxLength: 255
                          language:
                            type: string
                            description: The language of the message.
                            example: en
                            maxLength: 2
                x-readme-ref-name: transactionResponse
              examples:
                Ecom Card (Authorised):
                  value:
                    state: Authorised
                    approvalCode: '123456'
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    providerTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                      schemeTokenNumber: '4837261112345678'
                      avsResult: noInformationAvailable
                      cvcResult: noInformationAvailable
                      providerResponse:
                        provider: PXPFinancial
                        code: '00'
                        message: Approved
                        merchantId: '77772182'
                        terminalId: '75836665'
                        avsResult: D
                        cvcResult: A
                        schemeTransactionId: TX1234567890123456
                        schemeTransactionLinkId: TX1234567890123456
                        paymentAccountReference: PAR12345678901234567890
                        electronicCommerceIndicatorAdjustment: '01'
                        settlementDate: '2024-01-25T00:00:00.000Z'
                Ecom Card (Refused):
                  value:
                    state: Refused
                    stateData:
                      code: PRO0006
                      message: Do not Honour
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                      schemeTokenNumber: '4837261112345678'
                      providerResponse:
                        provider: PXPFinancial
                        code: '05'
                        message: Do not honour
                        merchantId: '77772182'
                        terminalId: '75836665'
                        merchantAdvice:
                          code: '01'
                          message: New account information available
                Ecom Card (Error - General):
                  value:
                    state: Error
                    stateData:
                      code: GEN0001
                      message: General Error
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                      schemeTokenNumber: '4837261112345678'
                Ecom Card (Error - Communication Timeout):
                  value:
                    state: Error
                    stateData:
                      code: PRO0002
                      message: Communication Timeout
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                      schemeTokenNumber: '4837261112345678'
                Ecom Card (Error - Risk Refusal):
                  value:
                    state: Error
                    stateData:
                      code: CAR0001
                      message: Risk Refusal
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                      schemeTokenNumber: '4837261112345678'
                Ecom Card (Error - Setup Failure):
                  value:
                    state: Error
                    stateData:
                      code: CAR0011
                      message: Setup Error
                    merchantTransactionId: This_is_my_merchant_transaction_id
                Instore Card (Authorised - With DCC result):
                  value:
                    state: Authorised
                    stateData: {}
                    approvalCode: '401445'
                    merchantTransactionDate: '2025-03-28T10:24:51'
                    merchantTransactionId: 433835e6-a332-452a-861b-069593dbb7c5
                    systemTransactionId: 238e5bc9-0166-4a8b-84b2-a12b804182bc
                    fundingData:
                      cardScheme: MasterCard
                      primaryAccountNumber: '4111111111111111'
                      expiryMonth: '01'
                      expiryYear: '2031'
                      gatewayTokenId: 5fbd77ce-02c1-40ed-94bc-1016660b7512
                      providerResponse:
                        provider: pxpfinancial
                        code: '00'
                        merchantId: '7171910017'
                        terminalId: '32454401'
                        emvDataResponse:
                          applicationIdentifier: A0000000032010
                          applicationLabel: VISA ELECTRON
                          primaryAccountNumberSequenceNumber: '0001'
                          authorisationResponseCode: '00'
                          issuerAuthenticationData: C9DF3CA29138D5E83030
                        electronicCommerceIndicatorAdjustment: '07'
                        merchantAdvice: {}
                        authorisedAmount: 6
                      processorTransactionId: f9c1f0ea-6c2f-4517-b2ca-460645f07e40
                    dccResult:
                      rateSelectedIndicator: Selected
                      amounts:
                        local:
                          transaction: 100
                          currencyCode: USD
                        cardHolder:
                          transaction: 85.5
                          currencyCode: EUR
                      markUpRate:
                        message: >-
                          A 3.5% markup has been applied over the base exchange
                          rate.
                        percentage: 3.5
                        language: en
                      commissionPercent: 2.1
                      exchangeRate:
                        rate: 1.44
                        source: European Central Bank
                        sourceDate: '2020-04-02T14:29:15.8626809+01:00'
                      providerData:
                        name: Elavon Merchant Services
                        referenceId: '3213123213'
                        terminalId: TID67777
                      dccDisclosure:
                        message: >-
                          You are offered to pay in EUR. This includes a 3.5%
                          commission above the base rate of 0.9245 provided by
                          Elavon.
                        language: en
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                description: >-
                  Indicates a client-side error where the request could not be
                  processed due to malformed syntax, invalid data, or missing
                  information. This response is used across different
                  transaction methods such as cards, APMs, bank transfers, and
                  wallets, signaling the need for the requester to modify their
                  input. It encompasses errors ranging from incorrect field
                  formats to missing required parameters.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0003
                  errorReason: Invalid Card Details Provided
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    description: TBC
                    example:
                      - '''$.site - The site field is required.'
                    items: {}
                    type: array
                    x-readme-ref-name: details
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_400
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: >-
                  This response denotes an unauthorized request due to failed
                  authentication or missing credentials, applicable across
                  various payment methods. It suggests the system cannot verify
                  the requester's identity or validate the transaction's
                  legitimacy, necessitating authentication details or proper
                  credentials.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0004
                  errorReason: Authentication Failed for Card Transaction
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    description: TBC
                    example:
                      - '''$.site - The site field is required.'
                    items: {}
                    type: array
                    x-readme-ref-name: details
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_401
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: >-
                  Signifies a request is understood but refused by the server,
                  often due to insufficient permissions or access rules. This
                  generic error is relevant for all transaction types,
                  indicating the action requested by the user is forbidden
                  despite successful authentication.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0005
                  errorReason: Transaction Not Permitted
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    description: TBC
                    example:
                      - '''$.site - The site field is required.'
                    items: {}
                    type: array
                    x-readme-ref-name: details
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_403
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: >-
                  Occurs when the server can find no match for the requested
                  resource, applicable to any transaction type. This response
                  indicates the specified resource, whether it be transaction
                  details, user information, or other data, does not exist or
                  cannot be found.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0006
                  errorReason: Card Transaction Details Not Found
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_404
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                description: >-
                  Indicates that the server refuses to process the request
                  because the request payload is larger than the server is
                  willing or able to process. This error is applicable across
                  all transaction types, signaling that the data submitted
                  exceeds the maximum allowed size. Clients should reduce the
                  size of their request before retrying. This response helps
                  maintain efficient processing and prevents overloading the
                  server with excessive data.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: TOK0004
                  errorReason: Token Request Payload Too Large
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_413
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                description: >-
                  Signifies that the server understands the content type of the
                  request and the syntax is correct, but it cannot process the
                  contained instructions. This response is particularly relevant
                  when validating request fields across various transaction
                  methods, including cards, APMs, bank transfers, and wallets,
                  where specific field values do not meet the expected formats
                  or logical validations. It prompts a review and correction of
                  the submitted data to align with the required standards or
                  constraints.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0010
                  errorReason: Invalid Transaction Data Format
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_422
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: >-
                  Represents a generic error response indicating an internal
                  server error. This response is used when the server encounters
                  an unexpected condition that prevents it from fulfilling the
                  request, which could range from temporary server malfunctions
                  to more complex issues within the server's processing of
                  specific transactions. It signals that the problem lies with
                  the server's internal operations rather than the request
                  itself. This type of error requires server-side investigation
                  and potentially corrective action to resolve the underlying
                  issue.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: GEN0008
                  errorReason: Unexpected Internal Error
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_500
        default:
          description: Error
          content:
            application/json:
              schema:
                description: >-
                  Defines the structure for reporting errors encountered during
                  the transaction process. This object includes a unique
                  `correlationId` for tracking and diagnosing the issue, an
                  `errorCode` identifying the type of error, and an
                  `errorReason` providing a descriptive explanation of the
                  error. Additionally, a `details` array may contain further
                  information or context about the error, offering insights
                  necessary for troubleshooting and resolution. This structured
                  approach ensures precise error reporting and aids in efficient
                  error management and support processes.
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    description: >-
                      An array of additional details about the error,
                      potentially including system-specific information,
                      sub-errors, or contextual data to aid in troubleshooting.
                    type: array
                    items: {}
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                required:
                  - correlationId
                  - errorCode
                  - errorReason
                type: object
                x-readme-ref-name: error
  /transactions/{systemTransactionId}/modifications:
    post:
      summary: Create a modification
      description: >-
        This endpoint facilitates the processing of modifications on previously
        initiated transactions that have not yet been fully processed or
        captured. Supported modification actions include refunds, captures,
        incremental authorisations, and voids. Upon successful execution, it
        returns a unique reference for the modification request, allowing for
        easy tracking and reconciliation.
      operationId: modify-a-transaction
      parameters:
        - name: systemTransactionId
          in: path
          description: >-
            The unique systemTransactionId with which you want to process an
            operation.  Always use the first `systemTransactionId` returned for
            an authorisation or purchase if you want to perform an increment,
            capture, refund, or void. This ensures that the correct transaction
            is referenced for any subsequent operations.
          required: true
          style: simple
          explode: false
          schema:
            description: >-
              The system transaction ID is a unique identifier generated by PXP
              for each transaction. It serves as a reference for tracking and
              querying transactions within the PXP system. This ID is crucial
              for performing modifications or querying transaction details.
            example: 1ed768bb-e88a-4636-91ae-67927ccbb02b
            minimum: 36
            maximum: 36
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            type: string
            x-readme-ref-name: systemTransactionId
      requestBody:
        description: Modifications to a previous transaction.
        content:
          application/json:
            schema:
              description: >-
                The modification request contains details required to perform a
                modification on a transaction, such as a refund, increment,
                void, or capture.
              required:
                - merchant
                - amounts
                - merchantTransactionId
                - operation
                - site
                - merchantTransactionDate
              properties:
                amounts:
                  description: >-
                    Details of the amount including transaction and gratuity
                    values and its associated currency.
                  type: object
                  required:
                    - transaction
                  properties:
                    transaction:
                      $ref: '#/components/schemas/transaction'
                    gratuityValue:
                      $ref: '#/components/schemas/gratuityValue'
                merchant:
                  $ref: '#/components/schemas/merchant'
                merchantTransactionDate:
                  $ref: '#/components/schemas/merchantTransactionDate'
                merchantTransactionId:
                  $ref: '#/components/schemas/merchantTransactionId'
                operation:
                  $ref: '#/components/schemas/operation'
                site:
                  $ref: '#/components/schemas/site'
                dccData:
                  $ref: '#/components/schemas/dccData'
              type: object
              x-readme-ref-name: modificationRequest
            examples:
              Refund:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                  amounts:
                    transaction: 30.32
                  operation: Refund
              Capture:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id_1
                  merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                  amounts:
                    transaction: 30.32
                  operation: Capture
              Final capture:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id_1
                  merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                  amounts:
                    transaction: 30.32
                  operation: FinalCapture
              Incremental:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id_1
                  merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                  amounts:
                    transaction: 1
                  operation: Incremental
              Void:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id_1
                  merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                  amounts:
                    transaction: 30.32
                  operation: Void
              Incremental with DCC:
                value:
                  merchant: MERCHANT-1
                  site: SITE-1
                  merchantTransactionId: This_is_my_merchant_transaction_id
                  merchantTransactionDate: '2025-09-11T14:19:49.1178265+07:00'
                  amounts:
                    transaction: 25
                    gratuityValue: 0
                  operation: Incremental
                  dccData:
                    rateSelectedIndicator: Selected
                    amounts:
                      local:
                        transaction: 25
                        currencyCode: GBP
                      cardholder:
                        transaction: 48.45
                        currencyCode: AUD
                    exchangeRate: 1.938037
                    providerData:
                      provider: Elavon
                      referenceId: '25091108151706'
                      terminalId: '210011226201'
                    disclaimer: This is an example disclaimer
                    markupRate: 3.5
        required: true
      responses:
        '200':
          description: Modifications response
          content:
            application/json:
              schema:
                description: >-
                  The modifications response provides details about the state of
                  a transaction modification request, including the state
                  itself, any additional state details, and relevant
                  transaction, funding data, and provider information.
                properties:
                  state:
                    $ref: '#/components/schemas/state'
                  stateData:
                    $ref: '#/components/schemas/stateData'
                  approvalCode:
                    $ref: '#/components/schemas/approvalCode'
                  merchantTransactionId:
                    $ref: '#/components/schemas/merchantTransactionId'
                  systemTransactionId:
                    $ref: '#/components/schemas/systemTransactionId'
                  merchantTransactionDate:
                    $ref: '#/components/schemas/merchantTransactionDate'
                  fundingData:
                    description: Details about the payment method used for the transaction.
                    properties:
                      cardScheme:
                        $ref: '#/components/schemas/cardScheme'
                      maskedPrimaryAccountNumber:
                        $ref: '#/components/schemas/maskedPrimaryAccountNumber'
                      expiryMonth:
                        $ref: '#/components/schemas/expiryMonth'
                      expiryYear:
                        $ref: '#/components/schemas/expiryYear'
                      gatewayTokenId:
                        $ref: '#/components/schemas/gatewayTokenId'
                      schemeTokenNumber:
                        $ref: '#/components/schemas/schemeTokenNumber'
                      cardVerificationCodeResult:
                        $ref: '#/components/schemas/cardVerificationCodeResult'
                      addressVerificationServiceResult:
                        $ref: '#/components/schemas/addressVerificationServiceResult'
                      nameVerificationResult:
                        $ref: '#/components/schemas/nameVerificationResult'
                      providerResponse:
                        description: >-
                          The response from the payment provider containing
                          details about the transaction processing outcome.
                        properties:
                          provider:
                            $ref: '#/components/schemas/providerResponseName'
                          code:
                            $ref: '#/components/schemas/providerResponseCode'
                          message:
                            $ref: '#/components/schemas/providerResponseMessage'
                          merchantId:
                            $ref: '#/components/schemas/providerResponseMerchantId'
                          terminalId:
                            description: >-
                              The unique identifier assigned to the terminal
                              used for the transaction processing.
                            example: '75836665'
                            type: string
                            x-readme-ref-name: providerResponseTerminalId
                          cardVerificationCodeResult:
                            description: >-
                              The Card Verification Code (CVC) result returned
                              by the provider. This is a raw data indicating the
                              outcome of the CVC check performed during the
                              transaction processing. It will only be returned
                              for card transactions where the `fundingType` is
                              `Card`.
                            type: string
                            example: D
                            x-readme-ref-name: providerResponseCvcResult
                          addressVerificationServiceResult:
                            $ref: '#/components/schemas/providerResponseAvsResult'
                          emvDataResponse:
                            $ref: '#/components/schemas/emvDataResponse'
                          paymentAccountReference:
                            $ref: '#/components/schemas/paymentAccountReference'
                          schemeTransactionId:
                            $ref: '#/components/schemas/schemeTransactionId'
                          schemeTransactionLinkId:
                            $ref: '#/components/schemas/schemeTransactionLinkId'
                          electronicCommerceIndicatorAdjustment:
                            $ref: >-
                              #/components/schemas/electronicCommerceIndicatorAdjustment
                          merchantAdvice:
                            $ref: '#/components/schemas/merchantAdvice'
                          settlementDate:
                            $ref: '#/components/schemas/settlementDate'
                required:
                  - state
                x-readme-ref-name: modificationResponse
              examples:
                Capture (Captured):
                  value:
                    state: Captured
                    approvalCode: '123456'
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      maskedPrimaryAccountNumber: '***************5678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      paymentAccountReference: PAR12345678901234567890
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb03a
                      schemeTokenNumber: '4837261112345678'
                    providerResponse:
                      provider: PXPFinancial
                      code: '00'
                      message: Approved
                      merchantId: '77772182'
                      terminalId: '75836665'
                      schemeTransactionId: TX1234567890123456
                      settlementDate: '2024-01-25T00:00:00.000Z'
                Incremental (Authorised):
                  value:
                    state: Authorised
                    transactionDetails: null
                    approvalCode: '123456'
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      maskedPrimaryAccountNumber: '***************5678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      paymentAccountReference: PAR12345678901234567890
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb03a
                      schemeTokenNumber: '4837261112345678'
                    providerResponse:
                      provider: PXPFinancial
                      code: '00'
                      message: Approved
                      merchantId: '77772182'
                      terminalId: '75836665'
                      schemeTransactionId: TX1234567890123456
                Refund (Authorised):
                  value:
                    state: Authorised
                    approvalCode: '123456'
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      maskedPrimaryAccountNumber: '***************5678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      paymentAccountReference: PAR12345678901234567890
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb03a
                      schemeTokenNumber: '4837261112345678'
                    providerResponse:
                      provider: PXPFinancial
                      code: '00'
                      message: Approved
                      merchantId: '77772182'
                      terminalId: '75836665'
                      schemeTransactionId: TX1234567890123456
                Void (Authorised):
                  value:
                    state: Cancelled
                    approvalCode: '123456'
                    merchantTransactionId: This_is_my_merchant_transaction_id
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    fundingData:
                      cardScheme: Visa
                      maskedPrimaryAccountNumber: '***************5678'
                      expiryMonth: '03'
                      expiryYear: '2025'
                      paymentAccountReference: PAR12345678901234567890
                      gatewayTokenId: 1ed768bb-e88a-4636-91ae-67927ccbb03a
                      schemeTokenNumber: '4837261112345678'
                    providerResponse:
                      provider: PXPFinancial
                      code: '00'
                      message: Approved
                      merchantId: '77772182'
                      terminalId: '75836665'
                      schemeTransactionId: TX1234567890123456
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                description: >-
                  Indicates a client-side error where the request could not be
                  processed due to malformed syntax, invalid data, or missing
                  information. This response is used across different
                  transaction methods such as cards, APMs, bank transfers, and
                  wallets, signaling the need for the requester to modify their
                  input. It encompasses errors ranging from incorrect field
                  formats to missing required parameters.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0003
                  errorReason: Invalid Card Details Provided
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_400
        '401':
          description: Unauthorised
          content:
            application/json:
              schema:
                description: >-
                  This response denotes an unauthorised request due to failed
                  authentication or missing credentials, applicable across
                  various payment methods. It suggests the system cannot verify
                  the requester's identity or validate the transaction's
                  legitimacy, necessitating authentication details or proper
                  credentials.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0004
                  errorReason: Authentication Failed for Card Transaction
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_401
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: >-
                  Signifies a request is understood but refused by the server,
                  often due to insufficient permissions or access rules. This
                  generic error is relevant for all transaction types,
                  indicating the action requested by the user is forbidden
                  despite successful authentication.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0005
                  errorReason: Transaction Not Permitted
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_403
        '404':
          description: Not found
          content:
            application/json:
              schema:
                description: >-
                  Occurs when the server can find no match for the requested
                  resource, applicable to any transaction type. This response
                  indicates the specified resource, whether it be transaction
                  details, user information, or other data, does not exist or
                  cannot be found.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0006
                  errorReason: Card Transaction Details Not Found
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_404
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                description: >-
                  Indicates that the server refuses to process the request
                  because the request payload is larger than the server is
                  willing or able to process. This error is applicable across
                  all transaction types, signaling that the data submitted
                  exceeds the maximum allowed size. Clients should reduce the
                  size of their request before retrying. This response helps
                  maintain efficient processing and prevents overloading the
                  server with excessive data.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: TOK0004
                  errorReason: Token Request Payload Too Large
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                type: object
                x-readme-ref-name: inline_response_413
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                description: >-
                  Signifies that the server understands the content type of the
                  request and the syntax is correct, but it cannot process the
                  contained instructions. This response is particularly relevant
                  when validating request fields across various transaction
                  methods, including cards, APMs, bank transfers, and wallets,
                  where specific field values do not meet the expected formats
                  or logical validations. It prompts a review and correction of
                  the submitted data to align with the required standards or
                  constraints.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: CAR0010
                  errorReason: Invalid Transaction Data Format
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    description: The error code returned for the operation.
                    example: INVALID_REQUEST
                    type: string
                    x-readme-ref-name: errorCode
                  errorReason:
                    description: The error reason returned for the operation.
                    example: One or more validation errors occurred.
                    type: string
                    x-readme-ref-name: errorReason
                type: object
                x-readme-ref-name: inline_response_422
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                description: >-
                  Represents a generic error response indicating an internal
                  server error. This response is used when the server encounters
                  an unexpected condition that prevents it from fulfilling the
                  request, which could range from temporary server malfunctions
                  to more complex issues within the server's processing of
                  specific transactions. It signals that the problem lies with
                  the server's internal operations rather than the request
                  itself. This type of error requires server-side investigation
                  and potentially corrective action to resolve the underlying
                  issue.
                example:
                  correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
                  details: []
                  errorCode: GEN0008
                  errorReason: Unexpected Internal Error
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    $ref: '#/components/schemas/details'
                  errorCode:
                    description: |
                      The error code returned for the operation.
                    example: INVALID_REQUEST
                    type: string
                    x-readme-ref-name: errorCode
                  errorReason:
                    description: |
                      The error reason returned for the operation.
                    example: One or more validation errors occurred.
                    type: string
                    x-readme-ref-name: errorReason
                type: object
                x-readme-ref-name: inline_response_500
        default:
          description: Error
          content:
            application/json:
              schema:
                description: >-
                  Defines the structure for reporting errors encountered during
                  the transaction process. This object includes a unique
                  `correlationId` for tracking and diagnosing the issue, an
                  `errorCode` identifying the type of error, and an
                  `errorReason` providing a descriptive explanation of the
                  error. Additionally, a `details` array may contain further
                  information or context about the error, offering insights
                  necessary for troubleshooting and resolution. This structured
                  approach ensures precise error reporting and aids in efficient
                  error management and support processes.
                properties:
                  correlationId:
                    $ref: '#/components/schemas/correlationId'
                  details:
                    description: >-
                      An array of additional details about the error,
                      potentially including system-specific information,
                      sub-errors, or contextual data to aid in troubleshooting.
                    type: array
                    items: {}
                  errorCode:
                    $ref: '#/components/schemas/errorCode'
                  errorReason:
                    $ref: '#/components/schemas/errorReason'
                required:
                  - correlationId
                  - errorCode
                  - errorReason
                type: object
                x-readme-ref-name: error
  /transactions/{merchant}/{site}:
    get:
      summary: Get transaction details
      operationId: get-transaction-details
      parameters:
        - name: merchant
          in: path
          description: >-
            The unique merchant identifier associated with the transaction, as
            assigned by PXP.
          required: true
          style: simple
          schema:
            description: Your unique merchant identifier, as assigned by PXP.
            example: MERCHANT-1
            maxLength: 20
            type: string
            x-readme-ref-name: merchant
        - name: site
          in: path
          description: >-
            The unique site identifier associated with the transaction, as
            assigned by PXP.
          required: true
          style: simple
          explode: true
          schema:
            description: >-
              The unique site identifier associated with the transaction. This
              could represent a physical location, website, or any other
              distinct entity where the transaction occurs.
            example: SITE-1
            maxLength: 20
            type: string
            x-readme-ref-name: site
        - name: merchantTransactionId
          in: query
          description: The unique identifier that you assigned to this transaction.
          required: false
          style: form
          explode: true
          schema:
            description: The unique identifier that you assigned to this transaction.
            example: ECOM-001
            type: string
            maxLength: 50
            x-readme-ref-name: merchantTransactionId
        - name: systemTransactionId
          in: query
          description: The unique identifier assigned to this transaction by PXP.
          required: false
          style: form
          explode: true
          schema:
            description: The unique identifier assigned to this transaction by PXP.
            example: 1ed768bb-e88a-4636-91ae-67927ccbb02b
            minimum: 36
            maximum: 36
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            type: string
            x-readme-ref-name: systemTransactionId
      responses:
        '200':
          description: Transaction details response
          content:
            application/json:
              schema:
                description: >-
                  The `transactionResponse` object provides comprehensive
                  details regarding the status and data associated with the
                  transaction. It includes information about the current state
                  of the transaction, transaction-specific details, funding data
                  related information, and the response received from the
                  payment provider.
                properties:
                  state:
                    $ref: '#/components/schemas/state'
                  stateData:
                    $ref: '#/components/schemas/stateData'
                  approvalCode:
                    $ref: '#/components/schemas/approvalCode'
                  merchantTransactionDate:
                    $ref: '#/components/schemas/merchantTransactionDate'
                  merchantTransactionId:
                    $ref: '#/components/schemas/merchantTransactionId'
                  systemTransactionId:
                    $ref: '#/components/schemas/systemTransactionId'
                  providerTransactionId:
                    $ref: '#/components/schemas/providerTransactionId'
                  fundingData:
                    description: Details about the payment method used for the transaction.
                    properties:
                      cardScheme:
                        $ref: '#/components/schemas/cardScheme'
                      maskedPrimaryAccountNumber:
                        $ref: '#/components/schemas/maskedPrimaryAccountNumber'
                      expiryMonth:
                        $ref: '#/components/schemas/expiryMonth'
                      expiryYear:
                        $ref: '#/components/schemas/expiryYear'
                      gatewayTokenId:
                        $ref: '#/components/schemas/gatewayTokenId'
                      schemeTokenNumber:
                        $ref: '#/components/schemas/schemeTokenNumber'
                      cardVerificationCodeResult:
                        $ref: '#/components/schemas/cardVerificationCodeResult'
                      addressVerificationServiceResult:
                        $ref: '#/components/schemas/addressVerificationServiceResult'
                      nameVerificationResult:
                        $ref: '#/components/schemas/nameVerificationResult'
                      providerResponse:
                        description: >-
                          The response from the payment provider containing
                          details about the transaction processing outcome.
                        properties:
                          provider:
                            description: >-
                              The name of the provider that processed the
                              transaction.
                            example: PXPFinancial
                            type: string
                            x-readme-ref-name: providerResponseName
                          code:
                            description: >-
                              The raw result code returned by the provider that
                              processed the transaction.
                            example: '00'
                            type: string
                            x-readme-ref-name: providerResponseCode
                          message:
                            description: >-
                              The raw message associated with the result code
                              from the provider that processed the transaction.
                            example: Transaction Approved
                            type: string
                            x-readme-ref-name: providerResponseMessage
                          merchantId:
                            description: >-
                              The unique identifier assigned by the provider to
                              represent the merchant involved in the transaction
                              processing.
                            example: '77772182'
                            type: string
                            x-readme-ref-name: providerResponseMerchantId
                          terminalId:
                            description: >-
                              The unique identifier assigned to the terminal
                              used for the transaction processing.
                            example: '75836665'
                            type: string
                            x-readme-ref-name: providerResponseTerminalId
                          cardVerificationCodeResult:
                            description: >-
                              The Card Verification Code (CVC) result returned
                              by the provider. This is a raw data indicating the
                              outcome of the CVC check performed during the
                              transaction processing. It will only be returned
                              for card transactions where the `fundingType` is
                              `Card`.
                            type: string
                            example: D
                            x-readme-ref-name: providerResponseCvcResult
                          addressVerificationServiceResult:
                            $ref: '#/components/schemas/providerResponseAvsResult'
                          emvDataResponse:
                            $ref: '#/components/schemas/emvDataResponse'
                          paymentAccountReference:
                            $ref: '#/components/schemas/paymentAccountReference'
                          schemeTransactionId:
                            $ref: '#/components/schemas/schemeTransactionId'
                          schemeTransactionLinkId:
                            $ref: '#/components/schemas/schemeTransactionLinkId'
                          electronicCommerceIndicatorAdjustment:
                            $ref: >-
                              #/components/schemas/electronicCommerceIndicatorAdjustment
                          merchantAdvice:
                            $ref: '#/components/schemas/merchantAdvice'
                          settlementDate:
                            $ref: '#/components/schemas/settlementDate'
                type: object
                x-readme-ref-name: transactionResponse
              examples:
                Ecom card authorisation (authorised):
                  value:
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    state: Authorised
                    stateMessage: Transaction Authorised
                    transactionMethod:
                      intent: Authorisation
                      fundingType: Card
                      entryType: Ecom
                    merchant: MERCHANT-1
                    site: SITE-1
                    merchantTransactionId: This_is_my_transaction_id
                    merchantTransactionDate: '2024-01-27T08:51:02.826Z'
                    amounts:
                      transaction: 50.05
                      currencyCode: EUR
                    shopper:
                      id: Shopper_01
                      firstName: John
                      lastName: Doe
                      dateOfBirth: '2022-01-26T00:00:00.000Z'
                      email: shopper@example.com
                Ecom card purchase (authorised):
                  value:
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    state: Authorised
                    stateMessage: Transaction Authorised
                    transactionMethod:
                      intent: Purchase
                      fundingType: Card
                      entryType: Ecom
                    merchant: MERCHANT-1
                    site: SITE-1
                    merchantTransactionId: This_is_my_transaction_id
                    merchantTransactionDate: '2021-10-27T08:51:02.826Z'
                    amounts:
                      transaction: 50.05
                      currencyCode: EUR
                    shopper:
                      id: Shopper_01
                      firstName: John
                      lastName: Doe
                      dateOfBirth: '2022-01-26T00:00:00.000Z'
                      email: shopper@example.com
                MOTO card authorisation (authorised):
                  value:
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    state: Authorised
                    stateMessage: Transaction Authorised
                    transactionMethod:
                      intent: Authorisation
                      fundingType: Card
                      entryType: Moto
                    merchant: MERCHANT-1
                    site: SITE-1
                    merchantTransactionId: This_is_my_transaction_id
                    merchantTransactionDate: '2021-10-27T08:51:02.826Z'
                    amounts:
                      transaction: 50.05
                      currencyCode: EUR
                    shopper:
                      id: Shopper_01
                      firstName: John
                      lastName: Doe
                      dateOfBirth: '2022-01-26T00:00:00.000Z'
                      email: shopper@example.com
                MOTO card purchase (authorised):
                  value:
                    systemTransactionId: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                    state: Authorised
                    stateMessage: Transaction Authorised
                    transactionMethod:
                      intent: Purchase
                      fundingType: Card
                      entryType: Moto
                    merchant: MERCHANT-1
                    site: SITE-1
                    merchantTransactionId: This_is_my_transaction_id
                    merchantTransactionDate: '2021-10-27T08:51:02.826Z'
                    amounts:
                      transaction: 50.05
                      currencyCode: EUR
                    shopper:
                      id: Shopper_01
                      firstName: John
                      lastName: Doe
                      dateOfBirth: '2022-01-26T00:00:00.000Z'
                      email: shopper@example.com
    servers:
      - url: https://app-reporting-dev-001.azurewebsites.net/api/v1
  /transactions/{merchant}/{site}/order-details:
    get:
      summary: Get order details
      operationId: get-order-details
      parameters:
        - name: merchant
          in: path
          description: Your unique merchant identifier, as assigned by PXP.
          required: true
          schema:
            type: string
            maxLength: 50
            example: MERCHANT-1
            x-readme-ref-name: merchant
        - name: site
          in: path
          description: Your unique site identifier, as assigned by PXP.
          required: true
          schema:
            type: string
            example: SITE-1
            x-readme-ref-name: site
        - name: fundingType
          in: query
          description: >-
            The funding type used for this transaction. Currently, only `paypal`
            is supported.
          required: true
          schema:
            type: string
            example: paypal
            x-readme-ref-name: fundingType
        - name: systemTransactionId
          in: query
          description: The unique identifier assigned to this transaction by PXP.
          required: true
          schema:
            type: string
            minLength: 36
            maxLength: 36
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            example: 1ed768bb-e88a-4636-91ae-67927ccbb02b
            x-readme-ref-name: systemTransactionId
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                properties:
                  fundingData:
                    type: object
                    description: Details about the funding method.
                    properties:
                      shippingAddress:
                        type: object
                        description: Details about the shipping address.
                        properties:
                          addressLine1:
                            type: string
                            description: The first line of the shipping address.
                            example: Flat 3
                            x-readme-ref-name: addressLine1
                          addressLine2:
                            type: string
                            description: The second line of the shipping address.
                            example: 59 Southdown Rd
                            x-readme-ref-name: addressLine2
                          city:
                            type: string
                            description: The city of the shipping address.
                            example: Harpenden
                            x-readme-ref-name: city
                          postalCode:
                            type: string
                            description: The postal code of the shipping address.
                            example: AL1 3JQ
                            x-readme-ref-name: postalCode
                          county:
                            type: string
                            description: The county of the shipping address.
                            example: Hertfordshire
                            x-readme-ref-name: county
                          countryCode:
                            type: string
                            description: >-
                              The country code of the shipping address, in
                              ISO-3166-1 alpha-2 format.
                            minLength: 2
                            maxLength: 2
                            example: GB
                            x-readme-ref-name: countryCode
                      merchantTransactionId:
                        type: string
                        description: >-
                          The unique identifier you assigned to this
                          transaction.
                        example: TRANSACTION-001
                        maxLength: 50
                        x-readme-ref-name: merchantTransactionId
                      systemTransactionId:
                        $ref: '#/components/schemas/systemTransactionId'
                      providerTransactionId:
                        type: string
                        description: >-
                          The unique identifier assigned to this transaction by
                          the provider. If the provider is PXP, then this
                          matches the `systemTransactionId`.
                        example: 1ed768bb-e88a-4636-91ae-67927ccbb02b
                        x-readme-ref-name: providerTransactionId
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_400'
        '401':
          description: Unauthorised
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_403'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_404'
        '413':
          description: Payload too large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_413'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_422'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/inline_response_500'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
components:
  schemas:
    addressVerification:
      description: >-
        Address verification details, applicable for transactions with `Moto` or
        `Ecom` as the entry type. It aids in the validation and fraud prevention
        process by matching the provided address with the cardholder's address
        on file.
      type: object
      properties:
        countryCode:
          description: >-
            ISO-3166-1 alpha-2 format two-character country code identifying the
            country associated with the cardholder's address.
          example: GB
          type: string
          minimum: 2
          maximum: 2
        houseNumberOrName:
          description: >-
            The house number or name associated with the cardholder's address.
            This field supports up to 100 characters to accommodate various
            global addressing formats.
          example: 10 Downing Street
          type: string
          maximum: 100
        postalCode:
          description: >-
            The postal code of the cardholder's address. This field accepts up
            to 5 digits for US addresses or up to 10 characters for addresses in
            other countries, accommodating global variations in postal code
            formats.
          example: SW1A 2AA
          type: string
          maximum: 10
      required:
        - countryCode
        - houseNumberOrName
        - postalCode
      x-readme-ref-name: addressVerification
    applePayBlob:
      title: Apple Pay
      description: >-
        Apple Pay transaction details, encapsulating the tokenised payment
        information. This is used for transactions processed through Apple Pay
        in `Moto` (Mail Order/Telephone Order) or `Ecom` (E-commerce) entry
        types. The token includes encrypted payment data, enhancing security and
        facilitating fraud prevention by utilising Apple's tokenisation
        technology.
      required:
        - applePayToken
      type: object
      properties:
        applePayToken:
          description: >-
            A token generated by Apple Pay that encapsulates the customer's
            payment information. This token is used instead of actual card
            numbers, providing a secure method to process transactions without
            exposing sensitive card details. The token includes information such
            as the device-specific account number, cryptogram, and other
            necessary payment data for processing.
          example: >-
            { 'version': 'EC_v1', 'data': '...', 'signature': '...', 'header': {
            'ephemeralPublicKey': '...', 'publicKeyHash': '...',
            'transactionId': '...' } }
          type: string
      x-readme-ref-name: applePayBlob
    approvalCode:
      description: >-
        A unique identifier code provided by the authorising entity, indicating
        approval or reference for the transaction. This code typically consists
        of alphanumeric characters, starting with an uppercase letter, and
        serves as a key reference for authorisation verification.
      example: A123456
      type: string
      pattern: ^[A-Z]
      x-readme-ref-name: approvalCode
    addressVerificationServiceResult:
      description: >-
        Indicates the result of the Address Verification System (AVS) check,
        providing detailed insights into the matching status of the postal code
        and address provided by the cardholder against the information on file
        with the card issuer. AVS is a security measure to detect and prevent
        fraud in card-not-present transactions. The result codes offer granular
        information on what was matched, partially matched, not matched, or not
        checked, allowing for a nuanced understanding of the verification
        outcome.
      type: string
      enum:
        - NoInformationAvailable
        - PostCodeMatchedAddressMatched
        - PostCodeMatchedAddressNotMatched
        - PostCodeMatchedAddressNotChecked
        - PostCodeNotMatchedAddressMatched
        - PostCodeNotMatchedAddressNotMatched
        - PostCodeNotMatchedAddressNotChecked
        - PostCodeNotCheckedAddressMatched
        - PostCodeNotCheckedAddressNotMatched
        - PostCodeNotCheckedAddressNotChecked
        - PostCodeMatchedAndAddressPartialMatch
        - PostCodePartialMatchAddressMatched
        - PostCodePartialMatchAddressPartialMatch
        - PostCodeNotMatchedAddressPartialMatch
        - PostCodePartialMatchAddressNotMatched
        - PostCodePartialMatchAddressNotChecked
        - PostCodeNotCheckedAddressPartialMatch
      example: PostCodeMatchedAddressMatched
      x-readme-ref-name: addressVerificationServiceResult
    amounts:
      description: >-
        Details of the amount including transaction and gratuity values and its
        associated currency.
      type: object
      required:
        - currencyCode
        - transaction
      properties:
        currencyCode:
          description: >-
            Denotes the currency code associated with the transaction,
            conforming to the ISO 4217 standard. This three-character code
            specifies the currency in which the transaction is processed,
            ensuring clarity and consistency across international transactions.
          example: EUR
          type: string
          minLength: 3
          maxLength: 3
          x-readme-ref-name: currencyCode
        transaction:
          $ref: '#/components/schemas/transaction'
        gratuityValue:
          $ref: '#/components/schemas/gratuityValue'
    authenticationId:
      description: >-
        A unique reference provided by PXP for the authentication request,
        represented as a GUID.
      example: 550e8400-e29b-41d4-a716-446655440000
      type: string
    cardholderAuthenticationVerificationValue:
      description: >-
        The Cardholder Authentication Verification Value (CAVV) is generated by
        the card issuer as part of the 3-D Secure authentication process for
        Visa transactions. It indicates that the cardholder has been
        authenticated, and it should be appended to the authorisation request.
      example: MjAwNjI0MDkwMTEwMjA4NjU0MTY=
      type: string
    directoryServerTransactionId:
      description: >-
        The 3DS 2.0 transaction identifier returned by the card issuer, unique
        to each authentication attempt.
      example: f25084f0-5b16-4c0a-ae5d-b24808a95e4b
      type: string
    electronicCommerceIndicator:
      description: >
        The Electronic Commerce Indicator (ECI) specifies the security level of
        an online transaction and the authentication outcome, crucial for
        determining liability in the event of a dispute. 

          Possible values:
          - `01`: Transaction processed with SSL or equivalent but without cardholder authentication (considered less secure, higher risk).
          - `02`: Transaction processed with cardholder authentication (e.g., 3D Secure), indicating a higher level of security.
          - `05`: Transaction processed with 3D Secure authentication, cardholder authenticated successfully (high security).
          - `06`: Transaction attempted 3D Secure authentication but could not be completed; cardholder not authenticated (medium security).
          - `07`: Transaction processed without 3D Secure authentication, due to issuer or cardholder not participating in 3D Secure (considered less secure, higher risk).
      type: string
      example: '05'
    threeDSecureVersion:
      description: >-
        The version of the 3-D Secure protocol used for the transaction's
        authentication, as returned by the PSP's Three D Secure Service. This
        indicates the specific set of 3-D Secure features and security measures
        applied.
      example: 2.1.0
      type: string
    threeDSecureTransactionStatus:
      description: >-
        The status of the transaction after being authenticated using the 3-D
        Secure protocol, as provided by the Payment Service Provider (PSP). This
        indicates the result of the 3-D Secure authentication process.
      example: 'Y'
      type: string
    card:
      description: Details about the card.
      type: object
      oneOf:
        - title: Apple Pay
          $ref: '#/components/schemas/applePayBlob'
        - title: Card not present
          $ref: '#/components/schemas/cardNotPresent'
        - title: Card present
          $ref: '#/components/schemas/cardPresent'
        - title: Scheme token number
          $ref: '#/components/schemas/schemeTokenNumberObject'
        - title: Scheme token ID
          $ref: '#/components/schemas/schemeTokenIdObject'
      x-readme-ref-name: card
    cardNotPresent:
      title: Card not present
      description: >-
        This object encompasses all necessary card details needed to process a
        transaction, including the primary account number, expiry date, card
        verification code (CVC), holder's name, and an optional gateway token Id
        for transactions using stored card information. This object ensures
        secure and efficient processing of card transactions by encapsulating
        all card-related information.
      properties:
        primaryAccountNumber:
          description: >-
            This refers to the unique number assigned to a payment card, such as
            a credit or debit card. This number typically contains 16 digits,
            structured in a specific format to indicate the card network,
            issuing bank, and account number.
          example: '4111111111111111111'
          maxLength: 19
          minLength: 10
          type: string
        expiryMonth:
          $ref: '#/components/schemas/expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/expiryYear'
        cardVerificationCode:
          description: >-
            The Card Verification Code (CVC) associated with the payment card, a
            security feature for transactions where the card is not physically  
            present. The CVC is typically a 3 or 4 digit number found on the
            card, used to verify that the cardholder is in possession of the
            card during non-face-to-face transactions.
          example: '123'
          type: string
          minimum: 3
          maximum: 4
        holderName:
          description: >-
            The full name of the individual who owns the payment card. This name
            is printed on the physical card and is used for verifying the
            cardholder's identity during transactions. The cardholder name is a
            vital component for transaction processing, especially in cases of
            card-not-present transactions like online purchases. It should be
            treated with confidentiality to safeguard the cardholder's privacy
            and prevent potential misuse.
          example: Mr John Doe
          maximum: 100
          type: string
        gatewayTokenId:
          description: >-
            A securely stored token that corresponds to a previously saved
            payment card. This token is generated and maintained by PXP to
            facilitate recurring transactions or transactions using stored card
            details, ensuring enhanced security and convenience. When a
            transaction is performed with a saved card, this token ID should be
            provided instead of the full card details. This approach enhances
            security by reducing the exposure of sensitive card information and
            simplifies the transaction process for returning customers."
          example: 2357e042-2bf0-4886-8d9d-718fa5909761
          maxLength: 36
          minLength: 36
          type: string
          x-readme-ref-name: gatewayTokenId
        walletType:
          description: >
            The type of digital wallet being used for the transaction. This
            field specifies which payment method or wallet service the shopper
            is using, such as ApplePay or GooglePay. The value provided here
            helps in processing the transaction according to the specific
            requirements of the chosen wallet service.
          type: string
          enum:
            - ApplePay
            - GooglePay
      x-readme-ref-name: cardNotPresent
    cardPresent:
      title: Card present
      required:
        - pointOfInteraction
        - securityLevel
      description: >
        This object ensures processing of card present transactions by
        encapsulating all card-related information, whether the data is captured
        using point-to-point encryption (P2PE) or not. It supports various
        methods of card data capture including:


        - Manual key entry: For transactions where card details are manually
        entered onto a device.

        - Swiped: Magnetic stripe data is captured through a card reader.

        - Chip and PIN: EMV chip data is captured using a chip reader, often
        requiring the cardholder to enter their PIN.

        - Contactless: Data is captured from NFC-enabled cards or devices by
        tapping them on a contactless reader.
      properties:
        pointOfInteraction:
          $ref: '#/components/schemas/pointOfInteraction'
        securityLevel:
          oneOf:
            - title: P2PE card data
              description: >
                Contains card data for transactions where point-to-point
                encryption (P2PE) is used.  P2PE ensures that cardholder data is
                encrypted at the point of capture and remains secure throughout
                the transmission process.
              required:
                - encryptedPayload
              properties:
                encryptedPayload:
                  description: >
                    Contains card data for transactions where point-to-point
                    encryption (P2PE) is used.  P2PE ensures that cardholder
                    data is encrypted at the point of capture and remains secure
                    throughout the transmission process. The encrypted payload
                    can include card data captured through various methods such
                    as key entry, swiped (magstripe), chip and pin (EMV), or
                    contactless (NFC) transactions.
                  example: >-
                    348BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplo1rgQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
              type: object
              x-readme-ref-name: p2peCardData
            - title: Non-P2PE card data
              description: >
                Contains card data for transactions where point-to-point
                encryption (P2PE) is not used.  This includes manually entered
                card data and magnetic stripe data, which are not protected by
                encryption during transmission.
              type: object
              properties:
                primaryAccountNumber:
                  description: >-
                    This refers to the unique number assigned to a payment card,
                    such as a credit or debit card. This number typically
                    contains 16 digits, structured in a specific format to
                    indicate the card network, issuing bank, and account number.
                    This is present if the card is manually entered into a
                    device without point-to-point encryption.
                  example: '4111111111111111'
                  maxLength: 19
                  minLength: 10
                  type: string
                expiryMonth:
                  description: >-
                    The expiry month [MM] of the card. This is present if the
                    card is manually entered into a device without
                    point-to-point encryption.
                  example: '03'
                  maxLength: 2
                  minLength: 2
                  pattern: ^[0-9]{2}$
                  type: string
                expiryYear:
                  description: >-
                    The expiry year [YYYY] of the card. This is present if the
                    card is manually entered into a device without
                    point-to-point encryption.
                  example: '2025'
                  maxLength: 4
                  minLength: 4
                  pattern: ^[0-9]{4}$
                  type: string
                cardVerificationCode:
                  description: >-
                    The Card Verification Code (CVC) associated with the payment
                    card, a security feature for transactions where the card is
                    not physically present. The CVC is typically a 3 or 4 digit
                    number found on the card, used to verify that the cardholder
                    is in possession of the card during non-face-to-face
                    transactions. This is present if the card is manually
                    entered into a device without point-to-point encryption.
                  example: '123'
                  minLength: 3
                  maxLength: 4
                  type: string
                holderName:
                  description: >-
                    The full name of the individual who owns the payment card.
                    This name is printed on the physical card and is used for
                    verifying the cardholder's identity during transactions. The
                    cardholder name is a vital component for transaction
                    processing, especially in cases of card-not-present
                    transactions like online purchases. It should be treated
                    with confidentiality to safeguard the cardholder's privacy
                    and prevent potential misuse.
                  example: Mr John Doe
                  maxLength: 100
                  type: string
                track2:
                  description: >-
                    Track 2 data from the magnetic stripe of the card. Track 2
                    data typically includes the card number, expiry date, and
                    additional service data. This data is used for transaction
                    processing when a card is swiped.
                  example: 4111111111111111=22122011234567890
                  maxLength: 37
                  type: string
                iccTrack2Equivalent:
                  description: >-
                    This field contains Track 2 equivalent data from the chip of
                    the card. This data is similar to Track 2 data but is
                    obtained from the card's chip rather than the magnetic
                    stripe.
                  example: 4111111111111111D22122011234567890
                  maxLength: 37
                  type: string
              x-readme-ref-name: nonP2peCardData
        emvData:
          description: >
            Contains detailed EMV (Europay, Mastercard, and Visa) data required
            for instore card transactions that are either chip and pin or
            contactless. Each field within this object represents a specific EMV
            tag that provides critical information about the transaction, card,
            and device.
          required:
            - applicationIdentifier
            - applicationInterchangeProfile
            - applicationLabel
            - applicationPreferredName
            - applicationTransactionCounter
            - applicationUsageControl
            - applicationVersionNumber
            - authorisationRequestCryptogram
            - cryptogramInformationData
            - cryptogramTransactionType
            - cardHolderVerificationMethodResults
            - dedicatedFilename
            - issuerActionCodesDefault
            - issuerActionCodesDenial
            - issuerActionCodesOnline
            - issuerApplicationData
            - primaryAccountNumberSequenceNumber
            - pointOfSaleEntryMode1
            - pointOfSaleEntryMode2
            - terminalCapabilities
            - terminalCountryCode
            - terminalType
            - terminalVerificationResult
            - track2EquivalentData
            - transactionStatusInformation
            - unpredictableNumber
          properties:
            applicationIdentifier:
              description: >-
                EMV Tag 9F06: Identifies the application according to ISO/IEC
                7816-5.
              type: string
              format: string(5-16)
              example: A0000000031010
            applicationInterchangeProfile:
              description: >-
                EMV Tag 82: Indicates the card's capabilities for supporting
                specific functions in the application.
              type: string
              format: string(2)
              example: 5C00
            applicationLabel:
              description: >-
                EMV Tag 50: Mnemonic associated with the Application Identifier
                (AID) according to ISO/IEC 7816-5.
              type: string
              format: string(1-16)
              example: VISA
            applicationPreferredName:
              description: >-
                The preferred name of the application as designated by the card
                issuer.
              type: string
              format: string(1-16)
              example: VISA CREDIT
            applicationTransactionCounter:
              description: >-
                EMV Tag 9F36: A counter maintained by the application in the
                ICC, incremented by the card for each transaction.
              type: string
              format: string(2)
              example: '0012'
            applicationUsageControl:
              description: >-
                EMV Tag 9F07: Indicates the issuer's specified restrictions on
                geographic usage and services allowed for the application.
              type: string
              format: string(2)
              example: FFC0
            applicationVersionNumber:
              description: >-
                EMV Tag 9F08: Version number assigned by the payment system for
                the application.
              type: string
              format: string(2)
              example: 008C
            authorisationRequestCryptogram:
              description: >-
                EMV Tag 9F26: Cryptogram generated by the card during the
                transaction.
              type: string
              format: string(8)
              example: 9F5B6A4C9F3F7C4D
            contactless:
              properties:
                discretionaryData:
                  description: >-
                    Additional data specified by the issuer, included in the
                    transaction for contactless payments.
                  type: string
                  format: string(0-32)
                  example: D1F2C3B4A567890123456789ABCDEF12
                formFactor:
                  description: >-
                    EMV Tag 9F6E: Indicates the type of device used in the
                    transaction.
                  type: string
                  format: string(1-2)
                  example: '07'
            cryptogramInformationData:
              description: >
                EMV Tag 9F27: Indicates the type of cryptogram and the actions
                to be performed by the device.


                Possible Values:

                - `00`: AAC (Application Authentication Cryptogram) -
                Transaction declined by the card.

                - `40`: TC (Transaction Certificate) - Transaction approved by
                the card.

                - `80`: ARQC (Authorisation Request Cryptogram) - Request for
                online Authorisation.

                - `C0`: ARPC (Authorisation Response Cryptogram) - Response from
                issuer to ARQC.

                - `10`: AAR (Application Authentication Request) - Additional
                Authorisation request for offline data authentication.
              type: string
              format: string(2)
              enum:
                - '00'
                - '40'
                - '80'
                - C0
                - '10'
              example: '00'
            cryptogramTransactionType:
              description: >
                EMV Tag 9C: Indicates the type of financial transaction,
                represented by the first two digits of ISO 8583:1987 Processing
                Code.
              type: string
              format: string(1)
              example: '00'
            cardHolderVerificationMethodResults:
              description: >-
                EMV Tag 9F34: Indicates the results of the last cardholder
                verification method performed.
              type: string
              format: string(3)
              example: '420300'
            dedicatedFilename:
              description: 'EMV Tag 84: Identifies the application or file in the card.'
              type: string
              format: string(5-16)
              example: A000000003
            issuerActionCodesDefault:
              description: >-
                EMV Tag 9F0D: Specifies the issuers conditions for transaction
                rejection when the device is unable to go online.
              type: string
              format: string(5)
              example: FFFFFFFFFF
            issuerActionCodesDenial:
              description: >-
                EMV Tag 9F0E: Specifies the issuers conditions that cause the
                denial of a transaction without an attempt to go online.
              type: string
              format: string(5)
              example: '0102030405'
            issuerActionCodesOnline:
              description: >-
                EMV Tag 9F0F: Specifies the issuers conditions that cause a
                transaction to be transmitted online.
              type: string
              format: string(5)
              example: A0B0C0D0E0
            issuerApplicationData:
              description: >-
                EMV Tag 9F10: Contains proprietary application data for
                transmission to the issuer in an online transaction.
              type: string
              format: string(2-32)
              example: 06010A03600000
            pinBlock:
              required:
                - encryptedPin
                - keySerialNumber
              description: >-
                Contains encrypted PIN data and the Key Serial Number (KSN) used
                for online PIN verification.
              type: object
              properties:
                encryptedPin:
                  description: >-
                    The encrypted PIN data used for online PIN verification.
                    This data is encrypted at the point of capture and remains
                    secure during transmission.
                  type: string
                  example: 1A2B3C4D5E6F7G8H
                keySerialNumber:
                  description: >-
                    The Key Serial Number (KSN) that identifies which key was
                    used for encrypting the PIN. This is used in conjunction
                    with the encrypted PIN for online PIN verification.
                  type: string
                  example: 1234567890ABCDEFFEDCBA0987654321
            primaryAccountNumberSequenceNumber:
              description: >-
                EMV Tag 5F34: Identifies and differentiates cards with the same
                PAN.
              type: string
              format: string(1)
              example: '01'
            pointOfSaleEntryMode1:
              description: >
                EMV Tag 9F39: Indicates the method by which the PAN was entered,
                according to the first digit of the ISO 8583:1987 point of sale
                entry mode.


                Possible values:

                - `05`: contactChip

                - `08`: contactlessEMV

                - `09`: magneticStripeReadFallback
              type: string
              example: '05'
            pointOfSaleEntryMode2:
              description: >
                EMV Tag 9F39: Indicates the method by which the PAN was entered,
                according to the second digit of the ISO 8583:1987 point of sale
                Entry Mode.


                Possible values:

                - `00`: normal

                - `01`: recurring

                - `02`: installment

                - `03`: incremental

                - `10`: partialApproval

                - `90`: preAuthorisation
              type: string
              example: '00'
            terminalCapabilities:
              description: >-
                EMV Tag 9F33: Indicates the card data input, CVM, and security
                capabilities of the device.
              type: string
              format: string(3)
              example: E0F8C8
            terminalCountryCode:
              description: >-
                EMV Tag 9F1A: Indicates the country of the device, represented
                according to ISO 3166.
              type: string
              format: string(2)
              example: '0840'
            terminalType:
              description: >-
                EMV Tag 9F35: Indicates the type of terminal involved in the
                transaction.


                Possible values:

                - `01`: Attended, online only. A device that requires human
                interaction (e.g., a cashier) and is only capable of performing
                online transactions. 

                - `02`: Attended, offline with online capability: A device that
                requires human interaction and can perform both offline and
                online transactions.

                - `03`: Attended, offline only. A device that requires human
                interaction and is only capable of performing offline
                transactions.

                - `04`: Unattended, online only. A device that does not require
                human interaction (e.g., self-service kiosk) and is only capable
                of performing online transactions. 

                - `05`: Unattended, offline with online capability. A device
                that does not require human interaction and can perform both
                offline and online transactions.

                - `06`: Unattended, both online and offline capable.

                - `07`: Attended, offline-only terminal with cash dispensing
                (e.g., attended ATM).

                - `08`: Attended, online-only terminal with cash dispensing.

                - `09`: Attended, both online and offline capable with cash
                dispensing.

                - `14`: Unattended, offline-only terminal with cash dispensing.

                - `15`: Unattended, online-only terminal with cash dispensing.

                - `16`: Unattended, both online and offline capable with cash
                dispensing.

                - `21`: Attended, offline-only terminal with goods dispensing
                (e.g., vending).

                - `22`: Attended, online-only terminal with goods dispensing.

                - `23`: Attended, both online and offline capable with goods
                dispensing.

                - `24`: Unattended, offline-only terminal with goods dispensing.

                - `25`: Unattended, online-only terminal with goods dispensing.

                - `26`: Unattended, both online and offline capable with goods
                dispensing.

                - `34`: Unattended, offline-only terminal with services
                dispensing.

                - `35`: Unattended, online-only terminal with services
                dispensing.

                - `36`: Unattended, both online and offline capable with
                services dispensing.

                - `61`: Unattended, offline only. A device that does not require
                human interaction and is only capable of performing offline
                transactions.
              type: string
              example: '01'
            terminalVerificationResult:
              description: >-
                EMV Tag 95: Status of the different functions as seen from the
                device.
              type: string
              format: string(5)
              example: '8000048000'
            transactionStatusInformation:
              description: 'EMV Tag 9B: Indicates the functions performed in a transaction.'
              type: string
              format: string(2)
              example: E800
            unpredictableNumber:
              description: >-
                EMV Tag 9F37: Value to provide variability and uniqueness to the
                generation of a cryptogram.
              type: string
              format: string(4)
              example: 6A5B4C3D
            additionalTags:
              description: >-
                Additional EMV tags, as required by acquirers (e.g., TTQ or
                CTQ). Encoded as concatenated TLV (Tag-Length-Value) structures
                in hexadecimal format.
              type: string
              pattern: ^[0-9A-F]*$
              example: 9F6604FFFFFFFF9F6C02FFFF
          type: object
          x-readme-ref-name: emvData
      type: object
      x-readme-ref-name: cardPresent
    cardScheme:
      description: >-
        The payment card's scheme, indicating the network through which the card
        transactions are processed. The card scheme is represented by name of
        the card network. This information is crucial for identifying the card
        type and facilitating transaction processing in accordance with the
        network's regulations and standards.
      example: Visa
      type: string
      pattern: ^[A-Z]+$
      x-readme-ref-name: cardScheme
    cardProviderResponse:
      description: >-
        The response from the payment provider containing details about the
        transaction processing outcome.
      properties:
        provider:
          description: The name of the provider that processed the transaction.
          example: PXPFinancial
          type: string
          x-readme-ref-name: providerResponseName
        code:
          description: >-
            The raw result code returned by the provider that processed the
            transaction.
          example: '00'
          type: string
          x-readme-ref-name: providerResponseCode
        message:
          description: >-
            The raw message associated with the result code from the provider
            that processed the transaction.
          example: Transaction Approved
          type: string
          x-readme-ref-name: providerResponseMessage
        merchantId:
          description: >-
            The unique identifier assigned by the provider to represent the
            merchant involved in the transaction processing.
          example: '77772182'
          type: string
          x-readme-ref-name: providerResponseMerchantId
        cardVerificationCodeResult:
          description: >-
            The Card Verification Code (CVC) result returned by the provider.
            This is a raw data indicating the outcome of the CVC check performed
            during the transaction processing. It will only be returned for card
            transactions where the fundingType is 'card'.
          type: string
          example: D
          x-readme-ref-name: providerResponseCvcResult
        addressVerificationServiceResult:
          $ref: '#/components/schemas/providerResponseAvsResult'
        emvDataResponse:
          description: >-
            Response data from an EMV (Europay, Mastercard, and Visa)
            transaction.
          type: object
          properties:
            applicationIdentifier:
              description: >-
                EMV Tag 9F06: Identifies the application according to ISO/IEC
                7816-5.
              type: string
              example: A0000000031010
            applicationLabel:
              description: >-
                EMV Tag 50: Mnemonic associated with the Application Identifier
                (AID) according to ISO/IEC 7816-5.
              type: string
              example: VISA
            primaryAccountNumberSequenceNumber:
              description: >-
                EMV Tag 5F34: Identifies and differentiates cards with the same
                PAN.
              type: string
              example: '01'
            authorisationResponseCode:
              description: >-
                A two-digit code (EMV tag '8A') indicating the result of the
                transaction authorisation, which may include approval, denial,
                or referral.
              type: string
              example: '00'
            issuerAuthenticationData:
              description: >-
                Data (EMV tag '91') provided by the issuer to authenticate the
                transaction. This may include an authorisation response
                Cryptogram (ARPC).
              type: string
              example: 1234567890ABCDEF
            issuerScriptTemplate1:
              description: >-
                Issuer-provided script (EMV tag '71') that can be used to update
                card parameters or perform specific actions on the card post
                authorisation.
              type: string
              example: 710A1234567890ABCDEF
            issuerScriptTemplate2:
              description: >-
                A second issuer-provided script (EMV tag '72') that can be used
                for additional card updates or actions post authorisation.
              type: string
              example: 720B1234567890ABCDEF12
          x-readme-ref-name: emvDataResponse
        paymentAccountReference:
          $ref: '#/components/schemas/paymentAccountReference'
        schemeTransactionId:
          type: string
          description: >-
            A unique identifier assigned by the card scheme (e.g., Visa,
            Mastercard) to each transaction. This identifier is crucial for
            tracking, reconciliation, and managing the lifecycle of the
            transaction, especially in contexts like chargebacks and fraud
            analysis. For card transactions, this could be the Visa Transaction
            Identifier or MasterCard Banknet Reference Number.
          example: '1234567890123456789012'
          x-readme-ref-name: schemeTransactionId
        electronicCommerceIndicatorAdjustment:
          $ref: '#/components/schemas/electronicCommerceIndicatorAdjustment'
        merchantAdvice:
          description: >-
            Provides additional guidance or recommendations from the card
            network regarding the transaction. This information is particularly
            useful for understanding the reasons behind a transaction's refusal
            and can offer suggestions for next steps. For instance, it might
            indicate that updated account information is available or suggest
            specific actions to resolve the refusal. The `merchantAdvice` object
            includes a `code` and `message` to detail this advisory information,
            making it easier for merchants to take corrective action or
            understand the refusal context.
          properties:
            code:
              type: string
              description: >-
                An advisory code provided by the card network that categorizes
                the type of advice or recommendation.
            message:
              type: string
              description: >-
                A human-readable message that provides further details or
                clarification about the advice code, potentially suggesting next
                steps or reasons for the transaction refusal.
          type: object
          x-readme-ref-name: merchantAdvice
        settlementDate:
          $ref: '#/components/schemas/settlementDate'
      x-readme-ref-name: cardProviderResponse
    expiryMonth:
      description: The expiry month [MM] of the card.
      example: '03'
      maxLength: 2
      minLength: 2
      pattern: ^[0-9]
      type: string
      x-readme-ref-name: expiryMonth
    expiryYear:
      description: The expiry year [YYYY] of the card.
      example: '2025'
      maxLength: 4
      minLength: 4
      pattern: ^[0-9]
      type: string
      x-readme-ref-name: expiryYear
    schemeTokenExpiryMonth:
      description: The expiry month of the scheme token (`MM`).
      example: '03'
      maxLength: 2
      minLength: 2
      pattern: ^[0-9]
      type: string
      x-readme-ref-name: schemeTokenExpiryMonth
    schemeTokenExpiryYear:
      description: The expiry year of the scheme token (`YYYY`).
      example: '2025'
      maxLength: 4
      minLength: 4
      pattern: ^[0-9]
      type: string
      x-readme-ref-name: schemeTokenExpiryYear
    p2peCardData:
      description: >
        Contains card data for transactions where point-to-point encryption
        (P2PE) is used.  P2PE ensures that cardholder data is encrypted at the
        point of capture and remains secure throughout the transmission process.
      required:
        - encryptedPayload
      properties:
        encryptedPayload:
          description: >
            Contains card data for transactions where point-to-point encryption
            (P2PE) is used.  P2PE ensures that cardholder data is encrypted at
            the point of capture and remains secure throughout the transmission
            process. The encrypted payload can include card data captured
            through various methods such as key entry, swiped (magstripe), chip
            and pin (EMV), or contactless (NFC) transactions.
          example: >-
            348BCFZFUklGT05F348CBFA0MDDfjwMLMjc1LTA0MC0zNzHfjwYBAN+PBwQbTVL4348ECv//AAAQACXgAA/fjwUIPmP5MQz/poffjwhoreYH9Y6M47xapI7MALlOG7zWO97lD7rVPK5pUVdHUotneMaiaBwE/2EMliZV3ZIiWPi4Xaa3A3wcnEFjAT9SqwwEEVI6XmDQXAbplo1rgQzMQsOsDFmIGXaTPb9sVdTumSsyFAmZwRE=
      type: object
      x-readme-ref-name: p2peCardData
    nonP2peCardData:
      description: >
        Contains card data for transactions where point-to-point encryption
        (P2PE) is not used.  This includes manually entered card data and
        magnetic stripe data, which are not protected by encryption during
        transmission.
      type: object
      properties:
        primaryAccountNumber:
          description: >-
            This refers to the unique number assigned to a payment card, such as
            a credit or debit card. This number typically contains 16 digits,
            structured in a specific format to indicate the card network,
            issuing bank, and account number. This is present if the card is
            manually entered into a device without point-to-point encryption.
          example: '4111111111111111'
          maxLength: 19
          minLength: 10
          type: string
        expiryMonth:
          description: >-
            The expiry month [MM] of the card. This is present if the card is
            manually entered into a device without point-to-point encryption.
          example: '03'
          maxLength: 2
          minLength: 2
          pattern: ^[0-9]{2}$
          type: string
        expiryYear:
          description: >-
            The expiry year [YYYY] of the card. This is present if the card is
            manually entered into a device without point-to-point encryption.
          example: '2025'
          maxLength: 4
          minLength: 4
          pattern: ^[0-9]{4}$
          type: string
        cardVerificationCode:
          description: >-
            Represents the Card Verification Code (CVC) associated with the
            payment card, a security feature for transactions where the card is
            not physically present. The CVC is typically a 3 or 4 digit number
            found on the card, used to verify that the cardholder is in
            possession of the card during non-face-to-face transactions. This is
            present if the card is manually entered into a device without
            point-to-point encryption.
          example: '123'
          minLength: 3
          maxLength: 4
          type: string
        holderName:
          description: >-
            The Cardholder Name represents the full name of the individual who
            owns the payment card. This name is printed on the physical card and
            is used for verifying the cardholder's identity during transactions.
            The cardholder name is a vital component for transaction processing,
            especially in cases of card-not-present transactions like online
            purchases. It should be treated with confidentiality to safeguard
            the cardholder's privacy and prevent potential misuse.
          example: Mr John Doe
          maxLength: 100
          type: string
        track2:
          description: >-
            This field contains Track 2 data from the magnetic stripe of the
            card. Track 2 data typically includes the card number, expiry date,
            and additional service data. This data is used for transaction
            processing when a card is swiped.
          example: 4111111111111111=22122011234567890
          maxLength: 37
          type: string
        iccTrack2Equivalent:
          description: >-
            This field contains Track 2 equivalent data from the chip of the
            card. This data is similar to Track 2 data but is obtained from the
            card's chip rather than the magnetic stripe.
          example: 4111111111111111D22122011234567890
          maxLength: 37
          type: string
      x-readme-ref-name: nonP2peCardData
    emvData:
      description: >
        Contains detailed EMV (Europay, Mastercard, and Visa) data required for
        instore card transactions that are either chip and pin or contactless.
        Each field within this object represents a specific EMV tag that
        provides critical information about the transaction, card, and device.
      required:
        - applicationIdentifier
        - applicationInterchangeProfile
        - applicationLabel
        - applicationPreferredName
        - applicationTransactionCounter
        - applicationUsageControl
        - applicationVersionNumber
        - authorisationRequestCryptogram
        - cryptogramInformationData
        - cryptogramTransactionType
        - cardHolderVerificationMethodResults
        - dedicatedFilename
        - issuerActionCodesDefault
        - issuerActionCodesDenial
        - issuerActionCodesOnline
        - issuerApplicationData
        - primaryAccountNumberSequenceNumber
        - pointOfSaleEntryMode1
        - pointOfSaleEntryMode2
        - terminalCapabilities
        - terminalCountryCode
        - terminalType
        - terminalVerificationResult
        - track2EquivalentData
        - transactionStatusInformation
        - unpredictableNumber
      properties:
        applicationIdentifier:
          description: >-
            EMV Tag 9F06: Identifies the application according to ISO/IEC
            7816-5.
          type: string
          format: string(5-16)
          example: A0000000031010
        applicationInterchangeProfile:
          description: >-
            EMV Tag 82: Indicates the card's capabilities for supporting
            specific functions in the application.
          type: string
          format: string(2)
          example: 5C00
        applicationLabel:
          description: >-
            EMV Tag 50: Mnemonic associated with the Application Identifier
            (AID) according to ISO/IEC 7816-5.
          type: string
          format: string(1-16)
          example: VISA
        applicationPreferredName:
          description: >-
            The preferred name of the application as designated by the card
            issuer.
          type: string
          format: string(1-16)
          example: VISA CREDIT
        applicationTransactionCounter:
          description: >-
            EMV Tag 9F36: A counter maintained by the application in the ICC,
            incremented by the card for each transaction.
          type: string
          format: string(2)
          example: '0012'
        applicationUsageControl:
          description: >-
            EMV Tag 9F07: Indicates the issuer's specified restrictions on
            geographic usage and services allowed for the application.
          type: string
          format: string(2)
          example: FFC0
        applicationVersionNumber:
          description: >-
            EMV Tag 9F08: Version number assigned by the payment system for the
            application.
          type: string
          format: string(2)
          example: 008C
        authorisationRequestCryptogram:
          description: >-
            EMV Tag 9F26: Cryptogram generated by the card during the
            transaction.
          type: string
          format: string(8)
          example: 9F5B6A4C9F3F7C4D
        contactless:
          properties:
            discretionaryData:
              description: >-
                Additional data specified by the issuer, included in the
                transaction for contactless payments.
              type: string
              format: string(0-32)
              example: D1F2C3B4A567890123456789ABCDEF12
            formFactor:
              description: >-
                EMV Tag 9F6E: Indicates the type of device used in the
                transaction.
              type: string
              format: string(1-2)
              example: '07'
        cryptogramInformationData:
          description: >
            EMV Tag 9F27: Indicates the type of cryptogram and the actions to be
            performed by the device.


            Possible Values:

            - `00`: AAC (Application Authentication Cryptogram) - Transaction
            declined by the card.

            - `40`: TC (Transaction Certificate) - Transaction approved by the
            card.

            - `80`: ARQC (Authorisation Request Cryptogram) - Request for online
            Authorisation.

            - `C0`: ARPC (Authorisation Response Cryptogram) - Response from
            issuer to ARQC.

            - `10`: AAR (Application Authentication Request) - Additional
            Authorisation request for offline data authentication.
          type: string
          format: string(2)
          enum:
            - '00'
            - '40'
            - '80'
            - C0
            - '10'
          example: '00'
        cryptogramTransactionType:
          description: >
            EMV Tag 9C: Indicates the type of financial transaction, represented
            by the first two digits of ISO 8583:1987 Processing Code.
          type: string
          format: string(1)
          example: '00'
        cardHolderVerificationMethodResults:
          description: >-
            EMV Tag 9F34: Indicates the results of the last cardholder
            verification method performed.
          type: string
          format: string(3)
          example: '420300'
        dedicatedFilename:
          description: 'EMV Tag 84: Identifies the application or file in the card.'
          type: string
          format: string(5-16)
          example: A000000003
        issuerActionCodesDefault:
          description: >-
            EMV Tag 9F0D: Specifies the issuers conditions for transaction
            rejection when the device is unable to go online.
          type: string
          format: string(5)
          example: FFFFFFFFFF
        issuerActionCodesDenial:
          description: >-
            EMV Tag 9F0E: Specifies the issuers conditions that cause the denial
            of a transaction without an attempt to go online.
          type: string
          format: string(5)
          example: '0102030405'
        issuerActionCodesOnline:
          description: >-
            EMV Tag 9F0F: Specifies the issuers conditions that cause a
            transaction to be transmitted online.
          type: string
          format: string(5)
          example: A0B0C0D0E0
        issuerApplicationData:
          description: >-
            EMV Tag 9F10: Contains proprietary application data for transmission
            to the issuer in an online transaction.
          type: string
          format: string(2-32)
          example: 06010A03600000
        pinBlock:
          required:
            - encryptedPin
            - keySerialNumber
          description: >-
            Contains encrypted PIN data and the Key Serial Number (KSN) used for
            online PIN verification.
          type: object
          properties:
            encryptedPin:
              description: >-
                The encrypted PIN data used for online PIN verification. This
                data is encrypted at the point of capture and remains secure
                during transmission.
              type: string
              example: 1A2B3C4D5E6F7G8H
            keySerialNumber:
              description: >-
                The Key Serial Number (KSN) that identifies which key was used
                for encrypting the PIN. This is used in conjunction with the
                encrypted PIN for online PIN verification.
              type: string
              example: 1234567890ABCDEFFEDCBA0987654321
        primaryAccountNumberSequenceNumber:
          description: 'EMV Tag 5F34: Identifies and differentiates cards with the same PAN.'
          type: string
          format: string(1)
          example: '01'
        pointOfSaleEntryMode1:
          description: >
            EMV Tag 9F39: Indicates the method by which the PAN was entered,
            according to the first digit of the ISO 8583:1987 point of sale
            entry mode.


            Possible values:

            - `05`: contactChip

            - `08`: contactlessEMV

            - `09`: magneticStripeReadFallback
          type: string
          example: '05'
        pointOfSaleEntryMode2:
          description: >
            EMV Tag 9F39: Indicates the method by which the PAN was entered,
            according to the second digit of the ISO 8583:1987 point of sale
            Entry Mode.


            Possible values:

            - `00`: normal

            - `01`: recurring

            - `02`: installment

            - `03`: incremental

            - `10`: partialApproval

            - `90`: preAuthorisation
          type: string
          example: '00'
        terminalCapabilities:
          description: >-
            EMV Tag 9F33: Indicates the card data input, CVM, and security
            capabilities of the device.
          type: string
          format: string(3)
          example: E0F8C8
        terminalCountryCode:
          description: >-
            EMV Tag 9F1A: Indicates the country of the device, represented
            according to ISO 3166.
          type: string
          format: string(2)
          example: '0840'
        terminalType:
          description: >-
            EMV Tag 9F35: Indicates the type of terminal involved in the
            transaction.


            Possible values:

            - `01`: Attended, online only. A device that requires human
            interaction (e.g., a cashier) and is only capable of performing
            online transactions. 

            - `02`: Attended, offline with online capability: A device that
            requires human interaction and can perform both offline and online
            transactions.

            - `03`: Attended, offline only. A device that requires human
            interaction and is only capable of performing offline transactions.

            - `04`: Unattended, online only. A device that does not require
            human interaction (e.g., self-service kiosk) and is only capable of
            performing online transactions. 

            - `05`: Unattended, offline with online capability. A device that
            does not require human interaction and can perform both offline and
            online transactions.

            - `06`: Unattended, both online and offline capable.

            - `07`: Attended, offline-only terminal with cash dispensing (e.g.,
            attended ATM).

            - `08`: Attended, online-only terminal with cash dispensing.

            - `09`: Attended, both online and offline capable with cash
            dispensing.

            - `14`: Unattended, offline-only terminal with cash dispensing.

            - `15`: Unattended, online-only terminal with cash dispensing.

            - `16`: Unattended, both online and offline capable with cash
            dispensing.

            - `21`: Attended, offline-only terminal with goods dispensing (e.g.,
            vending).

            - `22`: Attended, online-only terminal with goods dispensing.

            - `23`: Attended, both online and offline capable with goods
            dispensing.

            - `24`: Unattended, offline-only terminal with goods dispensing.

            - `25`: Unattended, online-only terminal with goods dispensing.

            - `26`: Unattended, both online and offline capable with goods
            dispensing.

            - `34`: Unattended, offline-only terminal with services dispensing.

            - `35`: Unattended, online-only terminal with services dispensing.

            - `36`: Unattended, both online and offline capable with services
            dispensing.

            - `61`: Unattended, offline only. A device that does not require
            human interaction and is only capable of performing offline
            transactions.
          type: string
          example: '01'
        terminalVerificationResult:
          description: >-
            EMV Tag 95: Status of the different functions as seen from the
            device.
          type: string
          format: string(5)
          example: '8000048000'
        transactionStatusInformation:
          description: 'EMV Tag 9B: Indicates the functions performed in a transaction.'
          type: string
          format: string(2)
          example: E800
        unpredictableNumber:
          description: >-
            EMV Tag 9F37: Value to provide variability and uniqueness to the
            generation of a cryptogram.
          type: string
          format: string(4)
          example: 6A5B4C3D
        additionalTags:
          description: >-
            Additional EMV tags, as required by acquirers (e.g., TTQ or CTQ).
            Encoded as concatenated TLV (Tag-Length-Value) structures in
            hexadecimal format.
          type: string
          pattern: ^[0-9A-F]*$
          example: 9F6604FFFFFFFF9F6C02FFFF
      type: object
      x-readme-ref-name: emvData
    correlationId:
      description: >-
        A unique identifier generated by PXP, serving as a critical tool for
        tracing and diagnosing transaction errors. This Id allows for the
        precise location of transactional issues, facilitating swift
        investigation and resolution by correlating specific transaction
        attempts or processes with error logs. Essential for support and
        operational teams, the correlationId enhances PXP's ability to maintain
        high-quality service and transaction reliability.
      example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
      type: string
      x-readme-ref-name: correlationId
    currencyCode:
      description: >-
        The currency code associated with the transaction, conforming to the ISO
        4217 standard. This three-character code specifies the currency in which
        the transaction is processed, ensuring clarity and consistency across
        international transactions.
      example: EUR
      type: string
      minLength: 3
      maxLength: 3
      x-readme-ref-name: currencyCode
    cardVerificationCodeResult:
      description: >-
        Represents the outcome of the Card Verification Code (CVC) check, an
        essential security measure for verifying the cardholder's presence
        during a transaction. This result indicates whether the provided CVC
        matches, does not match, or has not been checked against the card
        issuer's records, contributing to fraud prevention and transaction
        security.
      type: string
      enum:
        - NoInformationAvailable
        - CardSecurityCodeMatched
        - CardSecurityCodeNotMatched
        - CardSecurityCodeNotChecked
      example: CardSecurityCodeMatched
      x-readme-ref-name: cardVerificationCodeResult
    details:
      description: TBC
      example:
        - '''$.site - The site field is required.'
      items: {}
      type: array
      x-readme-ref-name: details
    dynamicDescriptors:
      description: >-
        Merchant-defined descriptors that enhance transaction recognition on
        customer bank statements.
      properties:
        cardAcceptorName:
          description: >-
            A specific descriptor for enhancing transaction clarity, typically
            including key transaction details.
          type: string
          maxLength: 22
          pattern: ^[a-zA-Z0-9 -]*$
      type: object
      x-readme-ref-name: dynamicDescriptors
    electronicCommerceIndicatorAdjustment:
      description: >
        The electronicCommerceIndicatorAdjustment field if present represents
        the Electronic Commerce Indicator (ECI) adjustment made by the payment
        scheme after the initial transaction authorisation. The ECI signifies
        the level of security applied to an online transaction, indicating the
        authentication and verification methods used. Adjustments to the ECI
        reflect a reevaluation of the transaction's security level, which can be
        due to various factors such as risk assessment updates, compliance with
        security standards, outcomes of authentication processes, interchange
        fee considerations, or error corrections. An ECI adjustment can either
        upgrade or downgrade the transaction's security indicator, impacting
        interchange fees, chargeback liability, and the transaction's overall
        security assurance.


        Possible values:

        - `01`: Transaction processed with SSL or equivalent but without
        cardholder authentication (considered less secure, higher risk).

        - `02`: Transaction processed with cardholder authentication (e.g., 3D
        Secure), indicating a higher level of security.

        - `05`: Transaction processed with 3D Secure authentication, cardholder
        authenticated successfully (high security).

        - `06`: Transaction attempted 3D Secure authentication but could not be
        completed; cardholder not authenticated (medium security).

        - `07`: Transaction processed without 3D Secure authentication, due to
        issuer or cardholder not participating in 3D Secure (considered less
        secure, higher risk).
      type: string
      example: '01'
      x-readme-ref-name: electronicCommerceIndicatorAdjustment
    entryType:
      description: >-
        Specifies the environment and method by which the transaction is
        initiated, reflecting the nature of the transaction's origin. This
        classification is crucial for applying the appropriate security measures
        and compliance standards. The entry types include `Ecom` for online
        transactions, `Moto` for mail order/telephone order transactions, and
        `Instore` for physical retail environments, each representing different
        transaction contexts and risk profiles.
      type: string
      enum:
        - Ecom
        - Moto
        - Instore
      example: Ecom
      x-readme-ref-name: entryType
    error:
      description: >-
        Defines the structure for reporting errors encountered during the
        transaction process. This object includes a unique `correlationId` for
        tracking and diagnosing the issue, an `errorCode` identifying the type
        of error, and an `errorReason` providing a descriptive explanation of
        the error. Additionally, a `details` array may contain further
        information or context about the error, offering insights necessary for
        troubleshooting and resolution. This structured approach ensures precise
        error reporting and aids in efficient error management and support
        processes.
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          description: >-
            An array of additional details about the error, potentially
            including system-specific information, sub-errors, or contextual
            data to aid in troubleshooting.
          type: array
          items: {}
        errorCode:
          description: >-
            A standardized code that categorizes the type of error encountered,
            enabling quick identification of common issues.
          type: string
        errorReason:
          description: >-
            A human-readable explanation of the error, providing clarity on the
            nature of the problem encountered.
          type: string
      required:
        - correlationId
        - errorCode
        - errorReason
      type: object
      x-readme-ref-name: error
    errorCode:
      description: The error code returned for the operation.
      example: INVALID_REQUEST
      type: string
      x-readme-ref-name: errorCode
    errorReason:
      description: The error reason returned for the operation.
      example: One or more validation errors occurred.
      type: string
      x-readme-ref-name: errorReason
    fundingData:
      description: Details about the payment method used to fund the transaction.
      type: object
      properties:
        card:
          $ref: '#/components/schemas/card'
        dynamicDescriptors:
          $ref: '#/components/schemas/dynamicDescriptors'
      required:
        - card
      x-readme-ref-name: fundingData
    fundingType:
      description: >-
        The method of payment used to fund the transaction. This field
        categorises the transaction by the payment medium, enabling tailored
        processing rules and security measures for each type. Understanding the
        funding type is crucial for processing the transaction correctly and
        ensuring compatibility with your  capabilities.
      type: string
      enum:
        - Card
      example: Card
      x-readme-ref-name: fundingType
    gatewayTokenId:
      description: >-
        A securely stored token that corresponds to a previously saved payment
        card. This token is generated and maintained by PXP to facilitate
        recurring transactions or transactions using stored card details,
        ensuring enhanced security and convenience. When a transaction is
        performed with a saved card, this token ID should be provided instead of
        the full card details. This approach enhances security by reducing the
        exposure of sensitive card information and simplifies the transaction
        process for returning customers."
      example: 2357e042-2bf0-4886-8d9d-718fa5909761
      maxLength: 36
      minLength: 36
      type: string
      x-readme-ref-name: gatewayTokenId
    gratuityValue:
      description: >-
        An optional field that captures the gratuity or tip amount added by the
        customer to the transaction total. This amount is separate from the main
        transaction and is specifically allocated as a gratuity for the service
        provider. Specifying this field allows for accurate reporting and
        distribution of tips to service staff, enhancing transparency and
        fairness in transactions where tipping is customary.
      example: 5.01
      type: number
      x-readme-ref-name: gratuityValue
    identityVerification:
      description: >-
        Provides a set of boolean flags that indicate the results of various
        identity verification checks. This object is applicable  only when the
        `transactionMethod.intent` is set to `Verification` for transactions
        processed with `Moto` or `Ecom` entry types. These checks are essential
        to ensure that the information provided matches the cardholder's details
        on file, crucial for  enhancing security and reducing fraud risks. Each
        property within this object represents a different aspect of the
        cardholder's identity being verified.
      type: object
      properties:
        nameVerification:
          description: >-
            A boolean indicating whether the cardholder's name matches the name
            associated with the registered address on file. This is part of the
            validation process to ensure authenticity and reduce fraudulent
            activities.
          example: true
          type: boolean
          default: false
      x-readme-ref-name: identityVerification
    inline_response_400:
      description: >-
        Indicates a client-side error where the request could not be processed
        due to malformed syntax, invalid data, or missing information. This
        response is used across different transaction methods such as cards,
        APMs, bank transfers, and wallets, signaling the need for the requester
        to modify their input. It encompasses errors ranging from incorrect
        field formats to missing required parameters.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: CAR0003
        errorReason: Invalid Card Details Provided
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_400
    inline_response_401:
      description: >-
        This response denotes an unauthorized request due to failed
        authentication or missing credentials, applicable across various payment
        methods. It suggests the system cannot verify the requester's identity
        or validate the transaction's legitimacy, necessitating authentication
        details or proper credentials.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: CAR0004
        errorReason: Authentication Failed for Card Transaction
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_401
    inline_response_403:
      description: >-
        Signifies a request is understood but refused by the server, often due
        to insufficient permissions or access rules. This generic error is
        relevant for all transaction types, indicating the action requested by
        the user is forbidden despite successful authentication.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: CAR0005
        errorReason: Transaction Not Permitted
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_403
    inline_response_404:
      description: >-
        Occurs when the server can find no match for the requested resource,
        applicable to any transaction type. This response indicates the
        specified resource, whether it be transaction details, user information,
        or other data, does not exist or cannot be found.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: CAR0006
        errorReason: Card Transaction Details Not Found
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_404
    inline_response_413:
      description: >-
        Indicates that the server refuses to process the request because the
        request payload is larger than the server is willing or able to process.
        This error is applicable across all transaction types, signaling that
        the data submitted exceeds the maximum allowed size. Clients should
        reduce the size of their request before retrying. This response helps
        maintain efficient processing and prevents overloading the server with
        excessive data.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: TOK0004
        errorReason: Token Request Payload Too Large
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_413
    inline_response_422:
      description: >-
        Signifies that the server understands the content type of the request
        and the syntax is correct, but it cannot process the contained
        instructions. This response is particularly relevant when validating
        request fields across various transaction methods, including cards,
        APMs, bank transfers, and wallets, where specific field values do not
        meet the expected formats or logical validations. It prompts a review
        and correction of the submitted data to align with the required
        standards or constraints.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: CAR0010
        errorReason: Invalid Transaction Data Format
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_422
    inline_response_500:
      description: >-
        Represents a generic error response indicating an internal server error.
        This response is used when the server encounters an unexpected condition
        that prevents it from fulfilling the request, which could range from
        temporary server malfunctions to more complex issues within the server's
        processing of specific transactions. It signals that the problem lies
        with the server's internal operations rather than the request itself.
        This type of error requires server-side investigation and potentially
        corrective action to resolve the underlying issue.
      example:
        correlationId: 81f32b80-2ba0-4430-8ecd-0b559274ba9c
        details: []
        errorCode: GEN0008
        errorReason: Unexpected Internal Error
      properties:
        correlationId:
          $ref: '#/components/schemas/correlationId'
        details:
          $ref: '#/components/schemas/details'
        errorCode:
          $ref: '#/components/schemas/errorCode'
        errorReason:
          $ref: '#/components/schemas/errorReason'
      type: object
      x-readme-ref-name: inline_response_500
    intent:
      description: >-
        The purpose or action of the transaction, indicating the intended money
        flow direction. This field is crucial for categorising the transaction
        type and guiding the processing logic accordingly. Options include
        `Authorisation` for reserving funds on the customer's payment method,
        `Purchase` for immediate fund capture following authorisation, and
        `Payout` for sending funds to a recipient. Each intent dictates a
        specific transaction flow and affects how the transaction is handled by
        the system.
      type: string
      enum:
        - Authorisation
        - EstimatedAuthorisation
        - Purchase
        - Payout
        - Refund
        - Verification
      example: Authorisation
      x-readme-ref-name: intent
    maskedPrimaryAccountNumber:
      description: The masked primary account number.
      example: '***************1111'
      maxLength: 19
      minLength: 10
      type: string
      x-readme-ref-name: maskedPrimaryAccountNumber
    merchant:
      description: >-
        A unique identifier assigned by PXP to represent a merchant entity, such
        as a store, hotel, or website, within the payment processing system.
        This identifier is crucial for routing transactions to the correct
        merchant account, ensuring accurate processing, settlement, and
        reporting. Merchants receive this value upon registration or integration
        with PXP, and it must be included in transaction requests to identify
        the merchant for whom the transaction is being processed.
      example: MERCHANT-1
      type: string
      maxLength: 20
      x-readme-ref-name: merchant
    merchantAdvice:
      description: >-
        Provides additional guidance or recommendations from the card network
        regarding the transaction. This information is particularly useful for
        understanding the reasons behind a transaction's refusal and can offer
        suggestions for next steps. For instance, it might indicate that updated
        account information is available or suggest specific actions to resolve
        the refusal. The `merchantAdvice` object includes a `code` and `message`
        to detail this advisory information, making it easier for merchants to
        take corrective action or understand the refusal context.
      properties:
        code:
          type: string
          description: >-
            An advisory code provided by the card network that categorizes the
            type of advice or recommendation.
        message:
          type: string
          description: >-
            A human-readable message that provides further details or
            clarification about the advice code, potentially suggesting next
            steps or reasons for the transaction refusal.
      type: object
      x-readme-ref-name: merchantAdvice
    merchantTransactionDate:
      description: >-
        The date and time when the transaction was initiated by the merchant.
        This timestamp is crucial for tracking the transaction throughout its
        lifecycle and for chronological order analysis. The date and time format
        follows the ISO 8601 standard, ensuring consistency and ease of
        interpretation in global contexts. It facilitates the accurate and
        precise logging of transaction initiation times, aiding in transaction
        management and reconciliation processes between the merchant and PXP.
      type: string
      format: date-time
      example: '2021-10-27 08:51:02.826445+00:00'
      x-readme-ref-name: merchantTransactionDate
    merchantTransactionId:
      description: >-
        A unique transaction reference assigned by you, the merchant, to
        identify individual transactions. This identifier serves as a primary
        means of communication regarding the transaction status between you and
        PXP. It is essential to maintain uniqueness for each transaction,
        ensuring accurate tracking and communication throughout the transaction
        lifecycle.
      example: This_is_my_merchant_transaction_id
      type: string
      maxLength: 50
      x-readme-ref-name: merchantTransactionId
    nameVerificationResult:
      description: >-
        The outcome of the name verification process, which is a security
        measure to ensure that the cardholder's name matches the name on the
        card.
      type: string
      enum:
        - NoInformationAvailable
        - FirstNameMatchedLastNameMatched
        - FirstNameMatchedLastNameNotMatched
        - FirstNameMatchedLastNameNotChecked
        - FirstNameMatchedLastNamePartialMatch
        - FirstNameNotMatchedLastNameMatched
        - FirstNameNotMatchedLastNameNotMatched
        - FirstNameNotMatchedLastNameNotChecked
        - FirstNameNotMatchedLastNamePartialMatch
        - FirstNameNotCheckedLastNameMatched
        - FirstNameNotCheckedLastNameNotMatched
        - FirstNameNotCheckedLastNameNotChecked
        - FirstNameNotCheckedLastNamePartialMatch
        - FirstNamePartialMatchLastNameMatched
        - FirstNamePartialMatchLastNameNotMatched
        - FirstNamePartialMatchLastNameNotChecked
        - FirstNamePartialMatchLastNamePartialMatch
        - FirstNamePartialMatchLastNamePartialMatch
        - FirstNamePartialMatchLastNamePartialMatch
      example: FirstNameMatchedLastNameMatched
      x-readme-ref-name: nameVerificationResult
    operation:
      description: >-
        Describes the operation to be applied to the previous transaction. This
        field specifies actions such as refund, void, capture, or incremental
        adjustments to a transaction.
      enum:
        - Capture
        - FinalCapture
        - Incremental
        - Refund
        - Void
      example: Capture
      type: string
      x-readme-ref-name: operation
    paymentAccountReference:
      description: >-
        The Payment Account Reference (PAR) is a unique identifier assigned to a
        payment account, independent of the card number. It remains constant
        over the account's lifetime, even if the card number (PAN) changes. PAR
        enhances transaction security and privacy, serving as a secure reference
        point for cardholders, merchants, and issuers. It is used in digital
        transaction processing to reliably link transactions and accounts
        without exposing the actual card number.
      example: PAR12345678901234567890
      pattern: ^[A-Z0-9]{22}$
      type: string
      x-readme-ref-name: paymentAccountReference
    providerResponseName:
      description: The name of the provider that processed the transaction.
      example: PXPFinancial
      type: string
      x-readme-ref-name: providerResponseName
    providerResponseCode:
      description: >-
        The raw result code returned by the provider that processed the
        transaction.
      example: '00'
      type: string
      x-readme-ref-name: providerResponseCode
    providerResponseMessage:
      description: >-
        The raw message associated with the result code from the provider that
        processed the transaction.
      example: Transaction Approved
      type: string
      x-readme-ref-name: providerResponseMessage
    providerResponseMerchantId:
      description: >-
        The unique identifier assigned by the provider to represent the merchant
        involved in the transaction processing.
      example: '77772182'
      type: string
      x-readme-ref-name: providerResponseMerchantId
    providerTransactionId:
      type: string
      description: >-
        A unique identifier assigned by the financial service provider for the
        transaction. It facilitates tracking, reconciliation, and support
        processes.
      x-readme-ref-name: providerTransactionId
    pointOfInteraction:
      required:
        - entryType
        - interfaceSerialNumber
        - kernelApplicationVersion
        - deviceModelName
        - operatingSystemVersion
        - pointOfSaleId
        - pointOfSaleApplicationVersion
        - serialNumber
        - storeAndForwardType
      description: >-
        The pointOfInteraction object captures detailed information about the
        device and environment where a card present transaction takes place. It
        includes various attributes that help identify and describe the
        capabilities and configurations of the point of sale (POS) device.
      properties:
        entryType:
          description: >
            Indicates the method by which the card information was entered
            during the transaction. This field is crucial for determining the
            specific 

            process and security measures used in the transaction. It helps in
            categorising the entry type, whether it involves physical card 

            interaction or a contactless device.


            Possible Values:

            - `CardContactless`: Card information read through a contactless
            interaction, such as tapping the card on the device.

            - `ChipAndPin`: Card information read from the chip, with the user
            entering a PIN for verification.

            - `ChipAndSignature`: Card information read from the chip, with the
            user providing a signature for verification.

            - `FallbackToSwipe`: Card information is read from the magnetic
            stripe after three failed attempts to read the chip.

            - `KeyEntry`: Card information manually entered through the keypad.

            - `PhoneContactless`: Card information read through a contactless
            interaction via a smartphone.

            - `Swiped`: Card information read from the magnetic stripe via
            swiping.

            - `WatchContactless`: Card information read through a contactless
            interaction via a smartwatch.

            - `WearableContactless`: Card information read through a contactless
            interaction via other wearable devices like fitness trackers or
            rings.
          enum:
            - CardContactless
            - ChipAndPin
            - ChipAndSignature
            - FallbackToSwipe
            - KeyEntry
            - PhoneContactless
            - Swiped
            - WatchContactless
            - WearableContactless
          example: Chip and PIN
          type: string
        interfaceSerialNumber:
          type: string
          description: >-
            The serial number of the interface used for the transaction,
            typically associated with the hardware component of the device.
        kernelApplicationVersion:
          type: string
          description: >-
            The version of the kernel application running on the device, which
            manages the card interaction process.
        deviceModelName:
          type: string
          description: >-
            The device model name of the point of sale device used for
            processing the transaction.
          example: CastlesSaturn1000
          enum:
            - CastlesSaturn1000
        operatingSystemVersion:
          type: string
          description: >-
            The version of the operating system installed on the point of sale
            device.
        pointOfSaleId:
          type: string
          description: >-
            A PXP unique identifier for the specific point of sale device, often
            assigned by the merchant or payment processor.
          example: ACME-001
          maxLength: 20
        pointOfSaleApplicationVersion:
          type: string
          description: >-
            The version of the point of sale application software installed on
            the device.
          example: 4.23.060.0
          maxLength: 20
        serialNumber:
          type: string
          description: >-
            The serial number of the point of sale device, which uniquely
            identifies the hardware device.
        storeAndForward:
          description: >-
            Contains response data related to an EMV (Europay, Mastercard, and
            Visa) transaction processed in-store. The store-and-forward
            mechanism allows transactions to be authorised offline when the
            device is unable to connect to the host. Once connectivity is
            restored, the transactions are forwarded to the PXP host for
            authorisation.
          type: object
          properties:
            storeAndForwardType:
              $ref: '#/components/schemas/storeAndForwardType'
            approvalCode:
              $ref: '#/components/schemas/approvalCode'
            systemTransactionId:
              $ref: '#/components/schemas/systemTransactionId'
      x-readme-ref-name: pointOfInteraction
    providerResponseAvsResult:
      description: >-
        The Address Verification Service (AVS) result returned by the provider.
        This is a raw data indicating the outcome of the AVS check performed
        during the transaction processing. It will only be returned for card
        transactions where the `fundingType` is `Card`.
      type: string
      example: A
      x-readme-ref-name: providerResponseAvsResult
    storeAndForwardType:
      description: >
        Store and Forward is a mechanism used for handling transactions when the
        merchant's connection to the PXP gateway is disrupted. It securely
        stores transactions offline until communications are re-established with
        the gateway. The types are:
          
          Possible Values
        - `None`: No store and forward mechanism is used. - `StoreAndForward`:
        Used when the merchant is configured for transactions that fail to reach
        the PXP gateway. Transactions are securely stored offline until
        communication with the gateway is re-established. -
        `ForcedStoreAndForward`: Typically used in situations like cruise liners
        with poor satellite communications. Transactions are automatically
        forced into store and forward mode. Once communication is
        re-established, the transactions are sent to the gateway to perform
        online authorisation with the acquirer via the PXP gateway.
      enum:
        - None
        - StoreAndForward
        - ForcedStoreAndForward
      example: storeAndForward
      type: string
      x-readme-ref-name: storeAndForwardType
    emvDataResponse:
      description: Response data from an EMV (Europay, Mastercard, and Visa) transaction.
      type: object
      properties:
        applicationIdentifier:
          description: >-
            EMV Tag 9F06: Identifies the application according to ISO/IEC
            7816-5.
          type: string
          example: A0000000031010
        applicationLabel:
          description: >-
            EMV Tag 50: Mnemonic associated with the Application Identifier
            (AID) according to ISO/IEC 7816-5.
          type: string
          example: VISA
        primaryAccountNumberSequenceNumber:
          description: 'EMV Tag 5F34: Identifies and differentiates cards with the same PAN.'
          type: string
          example: '01'
        authorisationResponseCode:
          description: >-
            A two-digit code (EMV tag '8A') indicating the result of the
            transaction authorisation, which may include approval, denial, or
            referral.
          type: string
          example: '00'
        issuerAuthenticationData:
          description: >-
            Data (EMV tag '91') provided by the issuer to authenticate the
            transaction. This may include an authorisation response Cryptogram
            (ARPC).
          type: string
          example: 1234567890ABCDEF
        issuerScriptTemplate1:
          description: >-
            Issuer-provided script (EMV tag '71') that can be used to update
            card parameters or perform specific actions on the card post
            authorisation.
          type: string
          example: 710A1234567890ABCDEF
        issuerScriptTemplate2:
          description: >-
            A second issuer-provided script (EMV tag '72') that can be used for
            additional card updates or actions post authorisation.
          type: string
          example: 720B1234567890ABCDEF12
      x-readme-ref-name: emvDataResponse
    providerResponseCvcResult:
      description: >-
        The Card Verification Code (CVC) result returned by the provider. This
        is a raw data indicating the outcome of the CVC check performed during
        the transaction processing. It will only be returned for card
        transactions where the `fundingType` is `Card`.
      type: string
      example: D
      x-readme-ref-name: providerResponseCvcResult
    psd2Data:
      type: object
      description: >-
        Contains PSD2-related information for the transaction, including any
        applicable Strong Customer Authentication (SCA) exemptions.
      properties:
        scaExemption:
          type: string
          description: >-
            Specifies the type of SCA exemption being requested for this
            transaction. Select the most applicable exemption type.
          enum:
            - AnonymousCard
            - LowValue
            - SecureCorporate
            - TransactionRiskAnalysis
            - TrustedBeneficiary
      required:
        - scaExemption
      x-readme-ref-name: psd2Data
    recurring:
      description: The recurring payment details associated with the transaction.
      properties:
        processingModel:
          description: >-
            Indicates the type of recurring payment associated with the
            transaction. When you first create a token, this indicates what type
            of recurring payment the token is intended for. For subsequent
            payments, it indicates the type of recurring payment. Specifically,
            the `frequencyInDays` and `frequencyExpiration` properties are
            applicable only when this is set to
            `MerchantInitiatedInitialRecurring`.
          enum:
            - CardOnFileShopperConsent
            - CardOnFileShopperInitiated
            - MerchantInitiatedReAuthorisation
            - MerchantInitiatedResubmission
            - MerchantInitiatedDelayedCharge
            - MerchantInitiatedNoShow
            - MerchantInitiatedInitialRecurring
            - MerchantInitiatedSubsequentRecurring
          example: MerchantInitiatedInitialRecurring
          type: string
        schemeTransactionId:
          $ref: '#/components/schemas/schemeTransactionId'
        frequencyInDays:
          description: >-
            Specifies the interval in days between each recurring transaction
            for `MerchantInitiatedInitialRecurring` processing model. This
            defines how often the recurring payments are attempted following the
            initial charge.
          example: 30
          type: integer
          x-applicableTo:
            - MerchantInitiatedInitialRecurring
        frequencyExpiration:
          description: >-
            Sets the expiration date for the recurring transaction authorisation
            specific to the `MerchantInitiatedInitialRecurring` processing
            model. After this date, no further recurring transactions are
            processed.
          example: '2025-12-31'
          type: string
          format: date
          x-applicableTo:
            - MerchantInitiatedInitialRecurring
        settlementDate:
          type: string
          format: date
          description: >-
            The date on which the transaction funds are settled between banks
            for MasterCard payments. This field is applicable and provided only
            for transactions processed using MasterCard. The settlement date is
            crucial for financial reconciliation and is formatted as YYYY-MM-DD.
          example: '2024-01-25'
          x-readme-ref-name: settlementDate
      required:
        - processingModel
      x-readme-ref-name: recurring
    schemeTransactionId:
      type: string
      description: >-
        A unique identifier assigned by the card scheme (e.g., Visa, Mastercard)
        to each transaction. This identifier is crucial for tracking,
        reconciliation, and managing the lifecycle of the transaction,
        especially in contexts like chargebacks and fraud analysis. For card
        transactions, this could be the Visa Transaction Identifier or
        MasterCard Banknet Reference Number.
      example: '1234567890123456789012'
      x-readme-ref-name: schemeTransactionId
    schemeTokenNumberObject:
      title: Scheme token number
      type: object
      description: >-
        Scheme token variant using a token number generated by card networks
        such as Visa or Mastercard, facilitating secure transaction processing
        through a numeric token identifier.
      properties:
        schemeTokenNumber:
          type: string
          description: >-
            A scheme token number issued by Visa or Mastercard, used for
            subsequent transaction processing. This token enhances security and
            facilitates recurring transactions, providing a secure and efficient
            alternative to sharing sensitive card details.
          example: '4837261112345678'
        expiryMonth:
          $ref: '#/components/schemas/schemeTokenExpiryMonth'
        expiryYear:
          $ref: '#/components/schemas/schemeTokenExpiryYear'
        cardVerificationCode:
          description: >-
            The Card Verification Code (CVC) associated with the payment card, a
            security feature for transactions where the card is not physically
            present. The CVC is typically a 3 or 4 digit number found on the
            card, used to verify that the cardholder is in possession of the
            card during non-face-to-face transactions.
          example: '123'
          type: string
          minimum: 3
          maximum: 4
        holderName:
          description: >-
            The full name of the individual who owns the payment card. This name
            is printed on the physical card and is used for verifying the
            cardholder's identity during transactions. The cardholder name is a
            vital component for transaction processing, especially in cases of
            card-not-present transactions like online purchases. It should be
            treated with confidentiality to safeguard the cardholder's privacy
            and prevent potential misuse.
          example: Mr John Doe
          maximum: 100
          type: string
        schemeTokenCryptogram:
          $ref: '#/components/schemas/schemeTokenCryptogram'
        cardScheme:
          description: >-
            The payment card's scheme, indicating the network through which the
            card transactions are processed. The card scheme is represented by
            name of the card network. This information is crucial for
            identifying the card type and facilitating transaction processing in
            accordance with the network's regulations and standards.
          example: Visa
          type: string
          pattern: ^[A-Z]+$
          x-readme-ref-name: cardScheme
      required:
        - schemeTokenNumber
        - expiryMonth
        - expiryYear
        - cardScheme
      x-readme-ref-name: schemeTokenNumberObject
    schemeTokenIdObject:
      title: Scheme token ID
      type: object
      description: >-
        Scheme token variant using a token ID generated by card networks such as
        Visa or Mastercard, facilitating secure transaction processing through a
        unique token identifier.
      properties:
        schemeTokenId:
          type: string
          description: >-
            A scheme token ID issued by Visa or Mastercard, used for subsequent
            transaction processing. This token enhances security and facilitates
            recurring transactions, providing a secure and efficient alternative
            to sharing sensitive card details.
          example: '4837261112345678'
        cardVerificationCode:
          description: >-
            The Card Verification Code (CVC) associated with the payment card, a
            security feature for transactions where the card is not physically
            present. The CVC is typically a 3 or 4 digit number found on the
            card, used to verify that the cardholder is in possession of the
            card during non-face-to-face transactions.
          example: '123'
          type: string
          minimum: 3
          maximum: 4
      required:
        - schemeTokenId
      x-readme-ref-name: schemeTokenIdObject
    schemeTransactionLinkId:
      type: string
      description: >-
        The unique identifier of the original transaction, as assigned by the
        card scheme (e.g., Visa, Mastercard). This identifier is used to link
        the original transaction to subsequent transactions, such as a refund or
        void.
      example: '1234567890123456789012'
      x-readme-ref-name: schemeTransactionLinkId
    schemeTokenNumber:
      type: string
      description: >-
        The scheme token number represents a scheme token issued by Visa or
        Mastercard, used for subsequent transaction processing. This token
        enhances security and facilitates recurring transactions, providing a
        secure and efficient alternative to sharing sensitive card details.
      example: '4837261112345678'
      x-readme-ref-name: schemeTokenNumber
    schemeTokenCryptogram:
      type: string
      description: >-
        A unique cryptogram generated during the tokenisation process, utilized
        for enhancing the security of transaction processing. This cryptogram
        acts as a secure and unique identifier, akin to the TAVV, ensuring that
        each transaction is authenticated and verified without directly using
        sensitive card details. It plays a crucial role in the secure electronic
        payment ecosystem, especially in tokenised transactions, by providing an
        additional layer of security and authentication.
      example: AAEBAwQjSQAAXXXXXXXJYe0BbQA=
      x-readme-ref-name: schemeTokenCryptogram
    settlementDate:
      type: string
      format: date
      description: >-
        The date on which the transaction funds are settled between banks for
        MasterCard payments. This field is applicable and provided only for
        transactions processed using MasterCard. The settlement date is crucial
        for financial reconciliation and is formatted as YYYY-MM-DD.
      example: '2024-01-25'
      x-readme-ref-name: settlementDate
    shopper:
      description: Details of the shopper involved in the transaction.
      properties:
        dateOfBirth:
          description: The date of birth of the shopper. Format should be YYYY-MM-DD.
          format: date
          maxLength: 10
          minLength: 10
          type: string
        email:
          description: The email address of the shopper.
          example: shopper@example.com
          format: email
          maxLength: 100
          type: string
        firstName:
          description: The first name of the shopper.
          example: John
          maxLength: 100
          type: string
        lastName:
          description: The last name of the shopper.
          example: Doe
          maxLength: 100
          type: string
        id:
          description: The unique identifier of the shopper.
          example: Shopper_01
          maxLength: 50
          pattern: ^[A-Za-z0-9 _-]+$
          type: string
        houseNumberOrName:
          description: >-
            The house number or name associated with the shopper's address. This
            field supports up to 100 characters to accommodate various global
            addressing formats.
          example: '10'
          type: string
          maximum: 100
        street:
          description: The street associated with the shopper's address.
          example: Downing Street
          type: string
          maxLength: 100
        addressLine2:
          description: The second line of the shopper's address.
          example: Flat 3
          type: string
        city:
          description: The city associated with the shopper's address.
          example: London
          type: string
        postalCode:
          description: >-
            The postal code of the shopper's address. This field accepts up to 5
            digits for US addresses or up to 10 characters for addresses in
            other countries, accommodating global variations in postal code
            formats.
          example: SW1A 2AA
          type: string
          maximum: 10
        state:
          description: >
            The state or province associated with the shopper's address. This
            field should be formatted using the ISO 3166-2 standard, which
            provides worldwide codes for the principal subdivisions of all
            countries. For example, US-CA for California, or IN-MH for
            Maharashtra. This is optional and specific to certain countries.
          minLength: 2
          maxLength: 2
          example: CA
          type: string
        countryCode:
          description: >-
            The country code identifying the country associated with the
            shopper's address, in ISO-3166-1 alpha-2 format.
          example: GB
          minLength: 2
          maxLength: 2
          type: string
        phoneNumber:
          description: The shopper's phone number.
          example: '+447911123456'
          type: string
          maxLength: 50
      type: object
      x-readme-ref-name: shopper
    shopperSecurityData:
      description: >-
        Security-related information to enhance transaction safety and fraud
        prevention.
      properties:
        ipAddress:
          description: >-
            The IP address of the shopper's device, utilized to analyze
            transaction patterns and detect potential fraud based on
            geographical and behavioral insights.
          example: 192.168.1.1
          type: string
        deviceFingerprint:
          description: >-
            A hashed value representing a unique identifier for the shopper's
            device, generated from a combination of device characteristics. This
            hash aids in identifying and mitigating fraudulent activities by
            allowing the recognition of suspicious device usage patterns and
            ensuring the integrity and non-repudiation of the device identity.
          example: 4eb53ed8428b6fed13a6952177640972248af1001a3fc72eaf57ad5c09d54bcd
          type: string
      type: object
      x-readme-ref-name: shopperSecurityData
    site:
      description: >-
        The unique site identifier associated with the transaction. This could
        represent a physical location, website, or any other distinct entity
        where the transaction occurs. The value for this field is generated by
        PXP.
      example: SITE-1
      maxLength: 20
      type: string
      x-readme-ref-name: site
    state:
      description: The current state of the transaction.
      enum:
        - Authorised
        - Captured
        - Cancelled
        - Error
        - Refused
      example: Authorised
      type: string
      x-readme-ref-name: state
    stateData:
      type: object
      description: Key value pair for various state data.
      properties:
        code:
          $ref: '#/components/schemas/stateDataCode'
        message:
          $ref: '#/components/schemas/stateDataMessage'
      example:
        code: '12345'
        message: Merchant not found
      x-readme-ref-name: stateData
    stateDataCode:
      description: The state details code.
      type: string
      x-readme-ref-name: stateDataCode
    stateDataMessage:
      description: The state details message.
      type: string
      x-readme-ref-name: stateDataMessage
    systemTransactionId:
      description: >-
        A unique identifier generated by PXP for each transaction. It serves as
        a reference for tracking and querying transactions within the PXP
        system. This ID is crucial for performing modifications or querying
        transaction details.
      example: 1ed768bb-e88a-4636-91ae-67927ccbb02b
      minimum: 36
      maximum: 36
      pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      type: string
      x-readme-ref-name: systemTransactionId
    transaction:
      description: >-
        The amount of the transaction. The numbers after the decimal will be
        zero padded if they are less than the expected currencyCode exponent.
        For example, GBP 1.1 = GBP 1.10, EUR 1 = EUR 1.00, or BHD 1.3 = 1.300.
        The transaction will be rejected if numbers after the decimal are
        greater than the expected currencyCode exponent, for example, GBP 1.234,
        or if a decimal is supplied when the currencyCode of exponent does not
        require it, for example, JPY 1.0.
      example: 30.32
      type: number
      x-readme-ref-name: transaction
    transactionMethod:
      description: >-
        The transaction method provides comprehensive details about the intent,
        capture method, and origin of a transaction.
      properties:
        entryType:
          $ref: '#/components/schemas/entryType'
        fundingType:
          $ref: '#/components/schemas/fundingType'
        intent:
          $ref: '#/components/schemas/intent'
      type: object
      required:
        - entryType
        - fundingType
        - intent
      x-readme-ref-name: transactionMethod
    threeDSecureData:
      type: object
      description: >-
        Details about 3DS. This object is relevant for transactions identified
        as `Ecom` in the `transactionMethod.entryType`. It contains data
        essential for the 3D Secure authentication process, which enhances
        online transaction security by facilitating the verification of the
        cardholder's identity. This process adds an important layer of
        protection against fraud in digital transactions. If `authenticationId`
        is provided, it will be used by PXP to look up the associated 3D Secure
        authentication data. If `authenticationId` isn't provided, you'll need
        to provide the authentication data instead.
      oneOf:
        - type: object
          title: Authentication ID
          properties:
            authenticationId:
              $ref: '#/components/schemas/authenticationId'
          required:
            - authenticationId
          additionalProperties: false
        - type: object
          title: Authentication data
          properties:
            cardholderAuthenticationVerificationValue:
              $ref: '#/components/schemas/cardholderAuthenticationVerificationValue'
            directoryServerTransactionId:
              $ref: '#/components/schemas/directoryServerTransactionId'
            electronicCommerceIndicator:
              $ref: '#/components/schemas/electronicCommerceIndicator'
            threeDSecureVersion:
              $ref: '#/components/schemas/threeDSecureVersion'
            threeDSecureTransactionStatus:
              $ref: '#/components/schemas/threeDSecureTransactionStatus'
          required:
            - cardholderAuthenticationVerificationValue
            - directoryServerTransactionId
            - electronicCommerceIndicator
            - threeDSecureVersion
            - threeDSecureTransactionStatus
          additionalProperties: false
      x-readme-ref-name: threeDSecureData
    dccData:
      type: object
      description: Details about the Dynamic Currency Conversion (DCC).
      properties:
        rateSelectedIndicator:
          type: string
          enum:
            - NotSelected
            - Selected
            - NotAvailable
            - CardNotEligible
            - Error
          description: Whether a DCC rate was selected for the transaction.
          example: Selected
          x-readme-ref-name: rateSelectedIndicator
        amounts:
          type: object
          description: >-
            Details about the transaction amount in the local currency and the
            cardholder's currency.
          properties:
            local:
              type: object
              description: Details about the transaction amount in the local currency.
              properties:
                transaction:
                  type: number
                  description: The transaction amount in the local currency.
                  example: 100
                currencyCode:
                  type: string
                  description: The currency code in ISO 4217 format.
                  example: USD
                  minLength: 1
                  maxLength: 3
              required:
                - transaction
                - currencyCode
            cardholder:
              type: object
              description: >-
                Details about the transaction amount in the cardholder's
                currency.
              properties:
                transaction:
                  type: number
                  description: The transaction amount in the cardholder's currency.
                  example: 100
                currencyCode:
                  type: string
                  description: The currency code in ISO 4217 format.
                  example: USD
                  minLength: 1
                  maxLength: 3
              required:
                - transaction
                - currencyCode
          required:
            - local
            - cardholder
          x-readme-ref-name: amounts
        exchangeRate:
          type: number
          description: The exchange rate used for the DCC.
          example: 0.855
        providerData:
          type: object
          description: Details about the DCC provider.
          properties:
            provider:
              type: string
              description: The name of the DCC provider.
              example: Elavon
            referenceId:
              type: string
              description: >-
                The reference ID provided by the DCC provider. This is required
                if your provider is Elavon, otherwise it's ignored.
              example: REF123456789
            merchantId:
              type: string
              description: >-
                The merchant ID assigned by the DCC provider. This is required
                if your provider is Elavon, otherwise it's ignored.
              example: MERCH001
            terminalId:
              type: string
              description: >-
                The terminal ID assigned by the DCC provider. This is required
                if your provider is Elavon, otherwise it's ignored.
              example: TERM001
          required:
            - provider
        markupRate:
          type: number
          description: The mark-up rate.
          example: 3.92
          nullable: true
        disclaimer:
          type: string
          description: The disclaimer text.
          example: This is an example disclaimer.
          nullable: true
      required:
        - rateSelectedIndicator
        - amounts
        - exchangeRate
        - providerData
      x-readme-ref-name: dccData
    riskScreeningData:
      type: object
      description: Details about the transaction for risk screening purposes.
      properties:
        excludeDeviceData:
          type: boolean
          description: Whether to exclude device fingerprinting data from analysis.
          example: 'false'
        performRiskScreening:
          type: boolean
          description: Whether to enable risk screening for this transaction.
          example: 'true'
        deviceSessionId:
          type: string
          description: >-
            The unique session identifier for the customer's end-user session on
            your site or app. This must be the same session ID used in the
            device data collection from the client-side Kount SDK.
          example: sadfw343434
          pattern: ^[0-9A-Za-z]*$
          maxLength: 256
        items:
          type: array
          description: Array of details about the items included in the transaction.
          items:
            type: object
            description: Details about the item.
            properties:
              price:
                type: integer
                description: >-
                  The price of the single item in the lowest currency factor.
                  For example, the lowest currency in `USD ` is pennies, so
                  $1.00 would have the value of `100`. Must be a natural number
                  including `0`.
                example: 95
                minimum: 0
              quantity:
                type: integer
                description: The quantity of the item being purchased.
                example: 1
                minimum: 1
              category:
                type: string
                description: A high-level or generalised description of the item.
                example: Electronics
              sku:
                type: string
                description: The item's Stock Keeping Unit identifier (SKU).
                example: ELEC123
        fulfillments:
          type: array
          description: Array of details about the fulfillment of the order.
          items:
            type: object
            description: Details about the fulfillment.
            properties:
              type:
                type: string
                description: The type of fulfillment.
                enum:
                  - Shipped
                  - Digital
                  - StorePickUp
                  - LocalDelivery
                  - StoreDriveUp
                  - InPerson
                example: Shipped
              recipientPerson:
                type: object
                description: Details about the order's recipient.
                properties:
                  name:
                    type: object
                    description: Details about the recipient's name.
                    properties:
                      first:
                        type: string
                        description: The recipient's first name.
                        example: John
                      middle:
                        type: string
                        description: The recipient's middle name or initial.
                        example: A
                      family:
                        type: string
                        description: The recipient's family/last name.
                        example: Doe
                      prefix:
                        type: string
                        description: The prefix of the recipient's name.
                        example: Mr
                      suffix:
                        type: string
                        description: The suffix of the recipient's name.
                        example: null
                      preferred:
                        type: string
                        description: The recipient's preferred name.
                        example: John
                  address:
                    type: object
                    description: Details about the recipient's address.
                    properties:
                      line1:
                        type: string
                        description: The first line of the address.
                      line2:
                        type: string
                        description: The second line of the address.
                      city:
                        type: string
                        description: The city of the address.
                      region:
                        type: string
                        description: The state, province, or region code of the address.
                      countryCode:
                        type: string
                        pattern: ^[A-Z]{2}$
                        description: >-
                          The country of the address, in ISO 3166-1 alpha-2
                          format.
                      postalCode:
                        type: string
                        description: The postal or ZIP code of the address.
                  email:
                    type: string
                    description: The recipient's email address.
                    example: john.doe@pxp.io
                  phoneNumber:
                    type: string
                    description: The recipient's phone number.
                    example: '00359885674367'
        transaction:
          type: object
          description: Details about the transaction.
          properties:
            subtotal:
              type: integer
              description: >-
                The total amount of the order without shipping and tax included,
                in its lowest denomination. For example, the lowest denomination
                in USD is the penny, so $1.00 has a total of `100`. The total
                must be a natural number, which includes `0`.
              example: 95
      x-readme-ref-name: riskScreeningData
x-readme:
  explorer-enabled: true
  proxy-enabled: true
