# Get transaction details

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)
    The unique identifier that you assigned to this transaction.
    Example: "ECOM-001"

  - `systemTransactionId` (string)
    The unique identifier assigned to this transaction by PXP.
    Example: "1ed768bb-e88a-4636-91ae-67927ccbb02b"

## 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"

  - `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"

  - `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"

  - `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"

  - `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. 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.
    Example: "2021-10-27 08:51:02.826445+00:00"

  - `merchantTransactionId` (string, 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.
    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.

  - `fundingData` (object)
    Details about the payment method used for the transaction.

  - `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.maskedPrimaryAccountNumber` (string)
    The masked primary account number.
    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)
    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.
    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.nameVerificationResult` (string)
    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.
    Enum: "NoInformationAvailable", "FirstNameMatchedLastNameMatched", "FirstNameMatchedLastNameNotMatched", "FirstNameMatchedLastNameNotChecked", "FirstNameMatchedLastNamePartialMatch", "FirstNameNotMatchedLastNameMatched", "FirstNameNotMatchedLastNameNotMatched", "FirstNameNotMatchedLastNameNotChecked", "FirstNameNotMatchedLastNamePartialMatch", "FirstNameNotCheckedLastNameMatched", "FirstNameNotCheckedLastNameNotMatched", "FirstNameNotCheckedLastNameNotChecked", "FirstNameNotCheckedLastNamePartialMatch", "FirstNamePartialMatchLastNameMatched", "FirstNamePartialMatchLastNameNotMatched", "FirstNamePartialMatchLastNameNotChecked", "FirstNamePartialMatchLastNamePartialMatch", "FirstNamePartialMatchLastNamePartialMatch", "FirstNamePartialMatchLastNamePartialMatch"

  - `fundingData.providerResponse` (object)
    The response from the payment provider containing details about the transaction processing outcome.

  - `fundingData.providerResponse.provider` (string)
    The name of the provider that processed the transaction.
    Example: "PXPFinancial"

  - `fundingData.providerResponse.code` (string)
    The raw result code returned by the provider that processed the transaction.
    Example: "00"

  - `fundingData.providerResponse.message` (string)
    The raw message associated with the result code from the provider that processed the transaction.
    Example: "Transaction Approved"

  - `fundingData.providerResponse.merchantId` (string)
    The unique identifier assigned by the provider to represent the merchant involved in the transaction processing.
    Example: "77772182"

  - `fundingData.providerResponse.terminalId` (string)
    The unique identifier assigned to the terminal used for the transaction processing.
    Example: "75836665"

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.emvDataResponse` (object)
    Response data from an EMV (Europay, Mastercard, and Visa) transaction.

  - `fundingData.providerResponse.emvDataResponse.applicationIdentifier` (string)
    EMV Tag 9F06: Identifies the application according to ISO/IEC 7816-5.
    Example: "A0000000031010"

  - `fundingData.providerResponse.emvDataResponse.applicationLabel` (string)
    EMV Tag 50: Mnemonic associated with the Application Identifier (AID) according to ISO/IEC 7816-5.
    Example: "VISA"

  - `fundingData.providerResponse.emvDataResponse.primaryAccountNumberSequenceNumber` (string)
    EMV Tag 5F34: Identifies and differentiates cards with the same PAN.
    Example: "01"

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.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"

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

  - `fundingData.providerResponse.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"

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

  - `fundingData.providerResponse.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"

  - `fundingData.providerResponse.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.

  - `fundingData.providerResponse.merchantAdvice.code` (string)
    An advisory code provided by the card network that categorizes the type of advice or recommendation.

  - `fundingData.providerResponse.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.

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


