# Get transaction details

Look up a card or pay by bank 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.

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

## Query parameters:

  - `merchantTransactionId` (string)
    The unique identifier that you assigned to this transaction. Required for lookup unless `systemTransactionId` is provided.

  - `systemTransactionId` (string)
    The unique identifier assigned to this transaction by PXP. Required for lookup unless `merchantTransactionId` is provided.

  - `fundingType` (string, required)
    The funding type used for the transaction. Use with `apmProvider` when looking up pay-by-bank transactions.

  - `apmProvider` (string)
    The alternative payment method (APM) provider for pay-by-bank transactions. Use together with `fundingType` when looking up pay-by-bank transactions.

## Response 200:

  - `200` (unknown)
    Transaction lookup result. Returns an array with zero or one item.

## 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. Use `Card` or `PayByBank`.
    Enum: "Card", "PayByBank"

  - `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`
- **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)
- **PayByBank - FlashFlow:**

`Purchase`
,
`Payout`
    Enum: "Authorisation", "EstimatedAuthorisation", "Purchase", "Payout", "Refund", "Verification"

  - `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 current date and time in ISO 8601 format.
    Example: 2024-01-27T08:51:02.826Z

  - `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. 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)
    Provider-issued payment-charge identifier for a recurring subsequent charge. 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:**
 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`
.

Responses return exactly one of these shapes for a given `fundingType`.

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

  - `fundingData.providerResponse.retrievalReferenceNumber` (string)
    A unique reference, typically generated by the acquirer, to identify a specific transaction across the payment flow.
    Example: 613808317649

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

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

  - `fundingData.providerResponse.issuerResponseCode` (string)
    The issuer response code returned by the provider, when present.

  - `fundingData.payByBank` (object)
    Pay-by-bank funding outcome returned under `fundingData.payByBank`. Optional fields are omitted when they have no value, rather than returned as `null`. `apmProvider` is always present.
SPEI returns a different subset on each operation:
- **Create and query:**

`apmProvider`
,
`paymentId`
,
`processorPaymentId`
,
`redirectUrl`
,
`gatewayTokenId`
, and
`status`
 when each has a value.
`apmProvider`
 is always
`Spei`
.
- **Refund:**

`apmProvider`
,
`paymentId`
, and
`processorPaymentId`
 only.

  - `fundingData.payByBank.apmProvider` (string, required)
    The alternative payment method (APM) provider that processes the pay-by-bank transaction, such as `Aeropay`, `Spei`, `Cvu`, `Breb`, or `Flashflow`.
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`. FlashFlow doesn't support capture, void, or refund.
    Enum: "Aeropay", "Spei", "Cvu", "Breb", "Flashflow"

  - `fundingData.payByBank.status` (string)
    Raw provider status for the pay-by-bank transaction. For SPEI, this is OKTO's unmapped status. Use the top-level `state` for the mapped outcome. Omitted when unknown (for example on a SPEI payout before the status poll completes) and on SPEI refunds.
    Example: Authorised

  - `fundingData.payByBank.redirectUrl` (string)
    Hosted page URL where the shopper completes a SPEI purchase transfer. Present on successful SPEI purchase create and query responses. Omitted for SPEI payout (no browser step), omitted on SPEI refund, 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.gatewayTokenId` (string)
    A PXP reference to the destination bank account or Llave for a payout. Present on accepted SPEI, CVU, Bre-B, and FlashFlow payout create and query responses when stored. For FlashFlow, also present on query (and merchant webhooks) after a successful pay-in when a payment account token has been vaulted. Capture it and reuse it as `fundingData.payByBank.gatewayTokenId` on a later payout to the same destination. Omitted when not yet stored.
    Example: b6e2f1a4-c3d8-4f7a-b1e9-d2c3f4a5b6c7

  - `fundingData.payByBank.iframeSrc` (string)
    The URL for the FlashFlow pay-in QR or bank redirect surface. Present on accepted FlashFlow `Purchase` creation responses. Render this URL in your own UI; PXP doesn't host this surface for FlashFlow. Don't treat the shopper finishing this surface as payment confirmation on its own. Treat merchant webhooks as the authoritative final outcome. Omitted on FlashFlow payout creation and on all FlashFlow query responses.
    Example: https://pay.example/flashflow/qr/...

  - `fundingData.payByBank.approvedAmount` (number)
    The FlashFlow floating settlement amount when returned by the provider. Present on FlashFlow `Purchase` create when FlashFlow supplies it. On FlashFlow query responses this field is always serialised as a number when stored, or as `null` when not yet stored.
    Example: 99.5

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

  - `fundingData.payByBank.processorPaymentId` (string)
    The provider clearing or processor reference for this operation. Same value as the response-root `providerTransactionId` when both are present.
- For SPEI: Present on create, query, and refund when known. Omitted when unknown.
- For CVU: never present for deposits, present for a payout once the background status check has run, and not present for refunds.

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.provider` (string, required)
    The payment provider used for this attempt.
    Example: pxpfinancial

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

  - `400` (unknown)
    Bad request

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

  - `401` (unknown)
    Unauthorised

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

  - `403` (unknown)
    Forbidden

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

  - `404` (unknown)
    Not found

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

  - `413` (unknown)
    Payload too large

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

  - `422` (unknown)
    Unprocessable entity

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

  - `500` (unknown)
    Internal server error

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

  - `default` (unknown)
    Error

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

## Response 200 examples:

  - `Ecom card authorisation (authorised)` (unknown)

  - `Ecom card purchase (authorised)` (unknown)

  - `MOTO card authorisation (authorised)` (unknown)

  - `MOTO card purchase (authorised)` (unknown)

  - `Instore card estimated authorisation (authorised)` (unknown)

  - `Ecom - SPEI purchase (authorised)` (unknown)

  - `Ecom - CVU payout (authorised)` (unknown)

  - `Ecom - CVU deposit (authorised)` (unknown)

  - `Ecom - Bre-B payout (authorised)` (unknown)

  - `Ecom - FlashFlow purchase (executed)` (unknown)

