# Get transaction details

Looks up a transaction by identifier. Provide at least one of merchantTransactionId or systemTransactionId. The response is a JSON array containing zero or one transaction object. This endpoint isn't a list or search API.

Endpoint: GET /transactions/{merchant}/{site}
Version: 1.0.0

## Path parameters:

  - `merchant` (string, required)
    The unique merchant identifier associated with the transaction, as assigned by PXP.
    Example: "MERCHANT-1"

  - `site` (string, required)
    The unique site identifier associated with the transaction, as assigned by PXP.
    Example: "SITE-1"

## Query parameters:

  - `merchantTransactionId` (string,null)
    The unique identifier that you assigned to this transaction. Required for lookup unless systemTransactionId is provided.
    Example: "This_is_my_merchant_transaction_id"

  - `systemTransactionId` (string)
    The unique identifier assigned to this transaction by PXP. Required for lookup unless merchantTransactionId is provided.
    Example: "1ed768bb-e88a-4636-91ae-67927ccbb02b"

  - `fundingType` (string, required)
    The funding type used for the transaction. Use this with apmProvider when looking up pay-by-bank transactions.
    Enum: "Card", "Cage", "Paypal", "PayByBank"

  - `apmProvider` (string)
    The alternative payment method (APM) provider for pay-by-bank transactions. For example, Aeropay, Spei, Cvu, or Breb. Use together with fundingType when looking up pay-by-bank transactions.
    Enum: "Aeropay", "Ideal", "Blik", "Spei", "Cvu", "Breb"

## Response 200 fields (application/json):

  - `state` (string)
    The current state of the transaction.
    Enum: "Authorised", "Refused", "Cancelled", "Captured", "Error", "Executed", "Confirmed", "Pending", "Refunded", "Updated", "Rejected", "Approved", "Aborted", "Expired"

  - `stateData` (object)
    Key value pair for various state data. [Learn more about how this works](https://developer.pxp.io/guides/transactions/how-it-works#state-data-response-codes).
    Example: {"code":"CRD000","message":"Approved"}

  - `stateData.code` (string)
    The state details code.
    Enum: "CRD000", "CRD001", "CRD002", "CRD003", "CRD004", "CRD005", "CRD006", "CRD007", "CRD100", "CRD101", "CRD102", "CRD103", "CRD104", "CRD105", "CRD106", "CRD107", "CRD108", "CRD109", "CRD110", "CRD111", "CRD112", "CRD113", "CRD114", "CRD115", "CRD116", "CRD117", "CRD118", "CRD119", "CRD120", "CRD121", "CRD122", "CRD123", "CRD124", "CRD125", "CRD126", "CRD127", "CRD128", "CRD129", "CRD180", "CRD181", "CRD182", "CRD183", "CRD184", "CRD185", "APM4100", "APM4101", "APM4102", "APM4103", "APM4104", "APM4105", "APM4106", "APM001", "APM004", "APM007", "APM011", "APM012", "APM013"

  - `stateData.message` (string)
    The state details message.
    Enum: "Approved", "Honour with identification", "Approved for partial amount", "Approved (VIP)", "Approved, update track 3", "Approved, account type specified by card issuer", "Approved for partial amount, account type specified by card issuer", "Approved, update ICC", "Do not honour", "Expired card", "Suspected fraud", "Card acceptor contact acquirer", "Restricted card", "Card acceptor call acquirer's security department", "Allowable PIN tries exceeded", "Refer to card issuer", "Refer to card issuer's special conditions", "Invalid merchant", "Invalid amount", "Invalid card number", "PIN data required", "Unacceptable fee", "No account of type requested", "Requested function not supported", "Not sufficient funds", "Incorrect PIN", "No card record", "Transaction not permitted to cardholder", "Transaction not permitted to terminal", "Exceeds withdrawal amount limit", "Security violation", "Exceeds withdrawal frequency limit", "Violation of law", "Card not effective", "Invalid PIN block", "PIN length error", "PIN key sync error", "Suspected counterfeit card", "Retry in contact mode or SCA Ecom required", "Pick up card", "Bad format", "Timeout / Malfunction", "Card restricted", "Refused by fraud or scoring system", "An internal server error occurred.", "The server has detected a conflict while processing this request.", "Authentication failed due to missing authorization header, or invalid authentication credentials.", "Request is not well-formed, syntactically incorrect, or violates schema.", "Authorization failed due to insufficient permissions.", "The requested action could not be performed, semantically incorrect, or failed business validation.", "The specified resource does not exist."

  - `transactionMethod` (object)
    The transaction method echoed on the response.

  - `transactionMethod.entryType` (string)
    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.
    Enum: "Ecom", "Moto", "Instore"

  - `transactionMethod.fundingType` (string)
    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.
    Enum: same as `fundingType` (4 values)

  - `transactionMethod.intent` (string)
    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. Each intent dictates a specific transaction flow and affects how the transaction is handled by the system.

Supported intents by funding type:
- Card: Authorisation, EstimatedAuthorisation, Purchase, Refund, Payout, Verification
- Paypal: Create, Payout
- Cage: Purchase, Payout
- PayByBank - Aeropay: Purchase, Authorisation, EstimatedAuthorisation, Payout
- PayByBank - SPEI: Purchase, Payout
- PayByBank - CVU: Payout only on create (deposits aren't initiated through this endpoint)
- PayByBank - Bre-B: Payout only on create (deposits aren't initiated through this endpoint)
    Enum: "Authorisation", "EstimatedAuthorisation", "Purchase", "Payout", "Refund", "Verification", "Create"

  - `approvalCode` (string)
    A unique identifier code provided by the authorising entity, indicating approval or reference for the transaction. This code typically consists of numeric characters and serves as a key reference for authorisation verification.
    Example: "123456"

  - `merchant` (string)
    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"

  - `site` (string)
    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"

  - `merchantTransactionDate` (string, required)
    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. Use ISO 8601 / RFC 3339 date-time format (for example 2024-01-27T08:51:02.826Z).
    Example: "2024-01-27T08:51:02.826Z"

  - `merchantTransactionId` (string,null, required)
    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. On create responses it is always present. On query responses it may be null for some flows (for example certain CVU deposits) when no merchant reference was supplied.
    Example: "This_is_my_merchant_transaction_id"

  - `systemTransactionId` (string, required)
    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"

  - `providerTransactionId` (string)
    A unique identifier assigned by the financial service provider for the transaction. It facilitates tracking, reconciliation, and support processes.

  - `paymentChargeId` (string,null)
    Provider-issued payment-charge identifier for a recurring subsequent charge (for example Ideal). Distinct from providerTransactionId, which some flows fall back to when a separate charge id was not issued.
    Example: "chg_01HXYZABCDEFGH"

  - `shopper` (object)
    Details of the shopper involved in the transaction.

  - `shopper.dateOfBirth` (string)
    The date of birth of the shopper. Format should be YYYY-MM-DD.

  - `shopper.email` (string)
    The email address of the shopper.
    Example: "shopper@example.com"

  - `shopper.firstName` (string)
    The first name of the shopper.
    Example: "John"

  - `shopper.lastName` (string)
    The last name of the shopper.
    Example: "Doe"

  - `shopper.id` (string)
    The unique identifier of the shopper.
    Example: "Shopper_01"

  - `shopper.houseNumberOrName` (string)
    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"

  - `shopper.street` (string)
    The street associated with the shopper's address.
    Example: "Downing Street"

  - `shopper.addressLine2` (string)
    The second line of the shopper's address.
    Example: "Flat 3"

  - `shopper.city` (string)
    The city associated with the shopper's address.
    Example: "London"

  - `shopper.postalCode` (string)
    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"

  - `shopper.state` (string)
    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.
    Example: "CA"

  - `shopper.countryCode` (string)
    The country code identifying the country associated with the shopper's address, in ISO-3166-1 alpha-2 format.
    Example: "GB"

  - `shopper.phoneNumber` (string)
    The shopper's phone number. For SPEI, required in E.164 format (for example +5215555555555).
    Example: "+447911123456"

  - `shopper.documentType` (string)
    The shopper identity document type. Required for SPEI and CVU.

- SPEI: only TaxIdNumber (Mexican RFC) or CivilRegisterId (Mexican CURP).
- CVU: IdentityDocument, Passport, TaxIdNumber, ForeignResidentCard, or CivilRegisterId.

When supplied, documentNumber is also required. Omit for other payment methods.
    Enum: "IdentityDocument", "Passport", "TaxIdNumber", "ForeignResidentCard", "CivilRegisterId"

  - `shopper.documentNumber` (string)
    The shopper identity document number. Required for SPEI and CVU when documentType is supplied.

- SPEI: exactly 13 alphanumeric characters for TaxIdNumber (RFC), or exactly 18 alphanumeric characters for CivilRegisterId (CURP).
- CVU: the document number that matches the selected documentType.

Omit for other payment methods.
    Example: "HEGJ850101ABC"

  - `shopper.products` (object)
    Details about the products associated with the shopper.

  - `shopper.orderDescription` (string)
    A description of the order.

  - `fundingData` (object)
    Funding details returned on create, modify, and query responses.

- Card / Cage: flat card fields at the fundingData root (cardScheme, obfuscated primaryAccountNumber, expiry, tokens, AVS/CVC results, and providerResponse).
- Pay by bank: wrap details under fundingData.payByBank.
- PayPal: providerResponse and optional payer.

Responses return exactly one of these shapes for a given fundingType. The schema lists the union of properties (not a top-level oneOf) so OpenAPI example validators do not emit spurious sibling-branch errors.

  - `fundingData.cardScheme` (string)
    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"

  - `fundingData.primaryAccountNumber` (string)
    The Primary Account Number (PAN) of the card used for the transaction. Obfuscated when present.
    Example: "************1111"

  - `fundingData.expiryMonth` (string)
    The expiry month [MM] of the card.
    Example: "03"

  - `fundingData.expiryYear` (string)
    The expiry year [YYYY] of the card.
    Example: "2025"

  - `fundingData.gatewayTokenId` (string)
    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"

  - `fundingData.schemeTokenNumber` (string)
    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"

  - `fundingData.cardVerificationCodeResult` (string)
    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.
    Enum: "NoInformationAvailable", "CardSecurityCodeMatched", "CardSecurityCodeNotMatched", "CardSecurityCodeNotChecked"

  - `fundingData.addressVerificationServiceResult` (string)
    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.
    Enum: "NoInformationAvailable", "PostCodeMatchedAddressMatched", "PostCodeMatchedAddressNotMatched", "PostCodeMatchedAddressNotChecked", "PostCodeNotMatchedAddressMatched", "PostCodeNotMatchedAddressNotMatched", "PostCodeNotMatchedAddressNotChecked", "PostCodeNotCheckedAddressMatched", "PostCodeNotCheckedAddressNotMatched", "PostCodeNotCheckedAddressNotChecked", "PostCodeMatchedAndAddressPartialMatch", "PostCodePartialMatchAddressMatched", "PostCodePartialMatchAddressPartialMatch", "PostCodeNotMatchedAddressPartialMatch", "PostCodePartialMatchAddressNotMatched", "PostCodePartialMatchAddressNotChecked", "PostCodeNotCheckedAddressPartialMatch"

  - `fundingData.providerResponse` (any) — one of:
    Provider outcome for the funding method. Card responses use card provider fields; PayPal responses use PayPal provider fields. Validated as anyOf (not oneOf) so open provider objects do not fail example lint when both shapes could apply.
    - Card provider response:
      - `provider` (string)
        The name of the provider that processed the transaction.
        Example: "PXPFinancial"
      - `code` (string)
        The raw result code returned by the provider that processed the transaction.
        Example: "00"
      - `message` (string)
        The raw message associated with the result code from the provider that processed the transaction.
        Example: "Transaction Approved"
      - `merchantId` (string)
        The unique identifier assigned by the provider to represent the merchant involved in the transaction processing.
        Example: "77772182"
      - `cardVerificationCodeResult` (string)
        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.
        Example: "D"
      - `addressVerificationServiceResult` (string)
        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.
        Example: "A"
      - `emvDataResponse` (object)
        Response data from an EMV (Europay, Mastercard, and Visa) transaction.
      - `emvDataResponse.applicationIdentifier` (string)
        EMV Tag 9F06: Identifies the application according to ISO/IEC 7816-5.
        Example: "A0000000031010"
      - `emvDataResponse.applicationLabel` (string)
        EMV Tag 50: Mnemonic associated with the Application Identifier (AID) according to ISO/IEC 7816-5.
        Example: "VISA"
      - `emvDataResponse.primaryAccountNumberSequenceNumber` (string)
        EMV Tag 5F34: Identifies and differentiates cards with the same PAN.
        Example: "01"
      - `emvDataResponse.authorisationResponseCode` (string)
        A two-digit code (EMV tag 8A) indicating the result of the transaction authorisation, which may include approval, denial, or referral.
        Example: "00"
      - `emvDataResponse.issuerAuthenticationData` (string)
        Data (EMV tag 91) provided by the issuer to authenticate the transaction. This may include an authorisation response Cryptogram (ARPC).
        Example: "1234567890ABCDEF"
      - `emvDataResponse.issuerScriptTemplate1` (string)
        Issuer-provided script (EMV tag 71) that can be used to update card parameters or perform specific actions on the card post authorisation.
        Example: "710A1234567890ABCDEF"
      - `emvDataResponse.issuerScriptTemplate2` (string)
        A second issuer-provided script (EMV tag 72) that can be used for additional card updates or actions post authorisation.
        Example: "720B1234567890ABCDEF12"
      - `paymentAccountReference` (string)
        The Payment Account Reference (PAR) returned by the provider when present. In industry terms (EMVCo Payment Tokenisation), PAR Data is a fixed 29-character uppercase alphanumeric value: a 4-character BIN Controller Identifier plus a 25-character unique value. Use it to link tokenised and reissued cards to the same underlying account without exposing the PAN. The gateway does not validate length or format; treat non-conforming values as provider-specific if you ever receive them.
        Example: "V001ABCDEFGHIJKLMNOPQRSTUVWXY"
      - `retrievalReferenceNumber` (string)
        A unique reference, typically generated by the acquirer, to identify a specific transaction across the payment flow.
        Example: "613808317649"
      - `schemeTransactionId` (string)
        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"
      - `electronicCommerceIndicatorAdjustment` (string)
        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).
        Example: "01"
      - `merchantAdvice` (object)
        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.
      - `merchantAdvice.code` (string)
        An advisory code provided by the card network that categorizes the type of advice or recommendation.
      - `merchantAdvice.message` (string)
        A human-readable message that provides further details or clarification about the advice code, potentially suggesting next steps or reasons for the transaction refusal.
      - `settlementDate` (string)
        The date and time on which the transaction funds are settled between banks for Mastercard payments. Returned as a date-time value when present. Applicable to Mastercard transactions when the provider supplies a settlement date.
        Example: "2024-01-25T00:00:00.000Z"
      - `nameVerificationResult` (string,null)
        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. May be null when the provider does not return a result.
        Enum: "NoInformationAvailable", "FirstNameMatchedLastNameMatched", "FirstNameMatchedLastNameNotMatched", "FirstNameMatchedLastNameNotChecked", "FirstNameMatchedLastNamePartialMatch", "FirstNameNotMatchedLastNameMatched", "FirstNameNotMatchedLastNameNotMatched", "FirstNameNotMatchedLastNameNotChecked", "FirstNameNotMatchedLastNamePartialMatch", "FirstNameNotCheckedLastNameMatched", "FirstNameNotCheckedLastNameNotMatched", "FirstNameNotCheckedLastNameNotChecked", "FirstNameNotCheckedLastNamePartialMatch", "FirstNamePartialMatchLastNameMatched", "FirstNamePartialMatchLastNameNotMatched", "FirstNamePartialMatchLastNameNotChecked", "FirstNamePartialMatchLastNamePartialMatch"
      - `issuerResponseCode` (string,null)
        The issuer response code returned by the provider, when present.
    - PayPal provider response:
      - `provider` (string)
        The provider name.
        Example: "Paypal"
      - `paymentSource` (object)
        The payment source used for the PayPal transaction.
      - `paymentSource.paypal` (object)
        Details about a PayPal or Venmo payment source.
      - `paymentSource.paypal.emailAddress` (string)
        The payment source email address.
        Example: "shopper@example.com"
      - `paymentSource.paypal.vaultDetails` (object)
        Vaulting details returned when a PayPal account is stored.
      - `paymentSource.paypal.vaultDetails.id` (string)
        The vault identifier.
      - `paymentSource.paypal.vaultDetails.status` (string)
        The vault status.
      - `paymentSource.paypal.vaultDetails.customerId` (string)
        The PayPal customer identifier.
      - `paymentSource.paypal.vaultDetails.merchantShopperId` (string)
        The merchant shopper identifier associated with the vault.
      - `paymentSource.paypal.recipientType` (string)
        The recipient type for payout payment sources.
      - `paymentSource.paypal.receiver` (string)
        The receiver value for payout payment sources.
      - `paymentSource.venmo` (object)
        Details about a PayPal or Venmo payment source.
      - `payoutBatchId` (string)
        The PayPal payout batch identifier. Present for payouts only.
      - `providerResponseCode` (string)
        The raw result code returned by PayPal.
        Example: "00"
      - `providerResponseMessage` (string)
        The raw result message returned by PayPal.
        Example: "Success"

  - `fundingData.payer` (object)
    PayPal payer details returned on the funding response.

  - `fundingData.payer.givenName` (string)
    The payer's given name.
    Example: "John"

  - `fundingData.payer.surName` (string)
    The payer's surname.
    Example: "Doe"

  - `fundingData.payer.emailAddress` (string)
    The payer's email address.
    Example: "shopper@example.com"

  - `fundingData.payer.phoneNumber` (string)
    The payer's phone number.

  - `fundingData.payByBank` (object)
    Pay-by-bank funding outcome returned under fundingData.payByBank.

  - `fundingData.payByBank.apmProvider` (string, required)
    The alternative payment method (APM) provider that processes the pay-by-bank transaction, such as Aeropay, Ideal, Blik, Spei, Cvu, or Breb.

On modifications where fundingType is PayByBank, this field is required — if omitted, the gateway defaults to Aeropay.

For SPEI refunds, set this to Spei. For CVU refunds, set this to Cvu. For Bre-B refunds, set this to Breb.
    Enum: same as `apmProvider` (6 values)

  - `fundingData.payByBank.status` (string)
    Provider-reported status for the pay-by-bank transaction. On SPEI and CVU query responses this mirrors the root state.
    Example: "Authorised"

  - `fundingData.payByBank.redirectUrl` (string)
    Hosted page URL where the shopper completes a SPEI or Ideal purchase transfer. Present on successful SPEI purchase create responses and Ideal responses that require a redirect. Omitted for SPEI/CVU payout (no browser step), omitted for all CVU responses, and may be omitted once a SPEI purchase has moved past the initial redirect stage.
    Example: "https://hosted-payment-page.example/spei/..."

  - `fundingData.payByBank.redirectRequestUrl` (string)
    Redirect URL returned for Blik when authenticationMode is REDIRECT.
    Example: "https://blik.example/redirect"

  - `fundingData.payByBank.redirectRequestMethod` (string)
    HTTP method for the Blik redirect request.
    Example: "GET"

  - `fundingData.payByBank.effectiveAuthenticationMode` (string)
    The Blik authentication mode actually used for the transaction.
    Example: "MULTI_FACTOR"

  - `fundingData.payByBank.gatewayTokenId` (string)
    A PXP reference to the destination bank account or Llave for a payout. Present on accepted SPEI, CVU, and Bre-B payout create and query responses when stored. Capture it and reuse it as fundingData.payByBank.gatewaytokenid on a later payout to the same destination.
    Example: "b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7"

  - `fundingData.payByBank.paymentId` (string)
    OKTO's own payment identifier for this operation, returned unchanged from OKTO. Present on SPEI purchase, payout, refund, and query responses, and on CVU deposit and payout query/create responses. For CVU refunds, the refund payment ID is internal-only and isn't exposed. Informational only; always use systemTransactionId for subsequent PXP API calls.
    Example: "6f2b6d0a-8b1a-4e2b-9c3d-0a1b2c3d4e5f"

  - `fundingData.payByBank.processorPaymentId` (string)
    OKTO's underlying clearing/processor reference for this operation, returned unchanged from OKTO. Same value as the response-root providerTransactionId when both are present.

- SPEI: Always present for purchase, omitted on the immediate payout create response until a later query after background status check, and present for refund only when the post-refund lookup succeeds.
- CVU: Never present for deposits, present for a payout once the background status check has run, and not present for refunds.

Omitted (never null) when unknown. Informational only; always use systemTransactionId for subsequent PXP API calls.
    Example: "9a4c7e21-3f5d-4b8e-8a1c-2d3e4f5a6b7c"

  - `fundingData.payByBank.paymentAgreementId` (string)
    Unity-owned payment-agreement identifier for providers that return reusable agreements.

  - `fundingData.payByBank.paymentInstrumentId` (string)
    Unity-owned payment-instrument identifier for providers that return reusable instruments.

  - `amounts` (object)
    Details of the amount including transaction, gratuity, and service charge values and its associated currency. Note that gratuity and serviceCharge can't be sent together.

  - `amounts.currencyCode` (string, required)
    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"

  - `amounts.transaction` (number)
    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

  - `amounts.shipping` (number)
    The shipping amount.
    Example: 5

  - `amounts.gratuity` (number)
    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. This field can't be used together with serviceCharge.
    Example: 5.01

  - `amounts.cashback` (number)
    The cashback amount for the authorisation.
    Example: 20

  - `amounts.cash` (number)
    The cash amount.
    Example: 50

  - `amounts.chip` (number)
    The chip amount.
    Example: 25

  - `amounts.cheque` (number)
    The cheque amount.
    Example: 100

  - `amounts.winningTicket` (number)
    The winning ticket amount.
    Example: 15

  - `amounts.serviceCharge` (object)
    Details about the service charge applied to the transaction. This field can't be used together with gratuity.

  - `amounts.serviceCharge.amount` (number, required)
    The service charge amount.
    Example: 10

  - `amounts.serviceCharge.percentage` (number, required)
    The service charge percentage.
    Example: 10

  - `riskScreeningData` (object)
    Risk screening results for fraud detection and prevention.

  - `riskScreeningData.riskScreeningId` (string)
    The unique identifier for the risk screening operation.
    Example: "RISK-123456"

  - `riskScreeningData.providerResults` (object)
    Results from risk screening providers.

  - `riskScreeningData.providerResults.kount` (object)
    Risk screening results from Kount.

  - `riskScreeningData.providerResults.kount.decision` (string)
    The decision from the risk screening service.
    Example: "APPROVE"

  - `riskScreeningData.providerResults.kount.riskScore` (number)
    The numerical risk score assigned by the risk screening service. Higher scores typically indicate higher risk.
    Example: 25.5

  - `riskScreeningData.providerResults.kount.rawResponse` (string)
    The raw response payload from the risk screening provider.
    Example: "AUTO=A&SCOR=25"

  - `shippingAddress` (object)
    The shipping address for the order. All fields are optional.

  - `shippingAddress.addressLine1` (string)
    The first line of the shipping address.
    Example: "123 Main St"

  - `shippingAddress.addressLine2` (string)
    The second line of the shipping address.
    Example: "Apt 4B"

  - `shippingAddress.postalCode` (string)
    The postal or ZIP code.
    Example: "SW1A 1AA"

  - `shippingAddress.countryCode` (string)
    The country code of the shipping address, in ISO 3166-1 alpha-2 format.
    Example: "GB"

  - `shippingAddress.city` (string)
    The city.
    Example: "London"

  - `shippingAddress.county` (string)
    The county.
    Example: "Greater London"

  - `shippingAddress.state` (string)
    The state or province.
    Example: "NY"

  - `paymentAgreementId` (string)
    The provider agreement identifier for payment methods that create a reusable recurring agreement.
    Example: "agr_01HZX3K9EXAMPLE"

  - `tokenId` (string)
    The token identifier returned for transactions that use an AnyPay credential.
    Example: "tok_01HZX3K9EXAMPLE"

  - `attemptsHistory` (array)
    Ordered list of provider attempts. Present when a payment was retried or routed to a fallback provider.

  - `attemptsHistory.systemTransactionId` (string, required)
    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"

  - `attemptsHistory.provider` (string, required)
    The payment provider used for this attempt.
    Example: "pxpfinancial"

  - `attemptsHistory.state` (string, required)
    The current state of the transaction.
    Enum: same as `state` (14 values)

  - `attemptsHistory.stateData` (object)
    Key value pair for various state data. [Learn more about how this works](https://developer.pxp.io/guides/transactions/how-it-works#state-data-response-codes).
    Example: {"code":"CRD000","message":"Approved"}

  - `attemptsHistory.timestamp` (string, required)
    The date and time when this attempt completed, in ISO 8601 format.
    Example: "2024-01-27T08:51:02.826Z"

## Response 400 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 401 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 403 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 404 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 413 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 422 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response 500 fields (application/json):

  - `correlationId` (string)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string)
    The error code returned for the operation.
    Example: "INVALID_REQUEST"

  - `errorReason` (string)
    The error reason returned for the operation.
    Example: "One or more validation errors occurred."

## Response default fields (application/json):

  - `correlationId` (string, required)
    The unique identifier for this error response. Include it when contacting PXP support.
    Example: "81f32b80-2ba0-4430-8ecd-0b559274ba9c"

  - `details` (array)
    Additional information about the error, such as field-level validation messages. Each entry is a string. May be empty.
    Example: ["'$.site' - The site field is required."]

  - `errorCode` (string, required)
    A standardized code that categorizes the type of error encountered, enabling quick identification of common issues.

  - `errorReason` (string, required)
    A human-readable explanation of the error, providing clarity on the nature of the problem encountered.


