# Initiate a POS transaction

The `/pos-transactions` endpoint enables you to initiate instore transactions. It supports various transaction methods including card and alternative payments.

Endpoint: POST /pos-transactions
Version: 1.0.0
Security: PXP-POS

## Request fields (application/json):

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

  - `pointOfInteraction` (object, required)
    The pointOfInteraction object captures detailed information about the device and environment where a card present transaction takes place. It includes various attributes that help identify and describe the capabilities and configurations of the point of sale (POS) device.

  - `pointOfInteraction.pointOfSaleId` (string, required)
    A PXP unique identifier for the specific point of sale device, often assigned by the merchant or payment processor.
    Example: ACME-001

  - `pointOfInteraction.language` (string, required)
    The display language, in ISO 639-1 format.
Possible values:
- `CA`: Catalan
- `DA`: Danish
- `DE`: German
- `EN`: English
- `ES`: Spanish
- `FR`: French
- `HU`: Hungarian
- `IS`: Icelandic
- `IT`: Italian
- `NL`: Dutch
- `NO`: Norwegian
- `PL`: Polish
- `PT`: Portuguese
- `SV`: Swedish
    Enum: "CA", "DA", "DE", "EN", "ES", "FR", "HU", "IS", "IT", "NL", "NO", "PL", "PT", "SV"

  - `pointOfInteraction.storeAndForwardType` (string, required)
    Store and Forward is a mechanism used for handling transactions when the merchant's connection to the PXP gateway is disrupted. It securely stores transactions offline until communications are re-established with the gateway. The types are:
Possible values:
- `None`: No store and forward mechanism is used.
- `ForcedStoreAndForward`: Typically used in situations like cruise liners with poor satellite communications. Transactions are automatically forced into store and forward mode. Once communication is re-established, the transactions are sent to the gateway to perform online authorisation with the acquirer via the PXP gateway.
    Enum: "None", "ForcedStoreAndForward"

  - `pointOfInteraction.invokeKeyed` (boolean)
    Whether the merchant wants to initiate a keyed transaction on the device. Keyed transactions involve manually entering the card details on the point of sale (POS) device.
    Example: true

  - `merchantTransactionId` (string, required)
    Represents 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

  - `merchantTransactionDate` (string, required)
    Specifies 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

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

  - `amounts.currencyCode` (string, required)
    The currency code in ISO 4217 format.
    Example: EUR

  - `amounts.transaction` (number, required)
    This is 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.gratuity` (number)
    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.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

  - `transactionMethod` (object, required)
    The transaction method provides comprehensive details about the intent, capture method, and origin of a transaction.

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

  - `transactionMethod.fundingType` (string, required)
    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: "Card"

  - `transactionMethod.intent` (string, required)
    The purpose or action of the transaction, indicating the intended money flow direction. This field is crucial for categorising the transaction type and guiding the processing logic accordingly. Options include `Authorisation` for reserving funds on the customer's payment method and `Purchase` for immediate fund capture following authorisation. Each intent dictates a specific transaction flow and affects how the transaction is handled by the system.
    Enum: "Authorisation", "EstimatedAuthorisation", "Purchase", "Refund", "StandaloneRefund", "Verification"

  - `recurring` (object)
    Details about recurring payment processing for card-on-file transactions. This parameter applies to initial transactions (`Purchase`, `Authorisation`, `EstimatedAuthorisation`) with `Instore` or `Moto` entry types. When provided, the customer's card will be saved on file with their consent, and the gateway token and scheme transaction ID will be returned in the response.

  - `recurring.processingModel` (string)
    The process model for the recurring transaction. Use `cardOnFileShopperConsent` when the shopper is present and provides consent for card storage, or `merchantInitiatedInitialRecurring` for the initial transaction in a merchant-initiated recurring series.
    Enum: "cardOnFileShopperConsent", "merchantInitiatedInitialRecurring"

  - `statusCallbackUrl` (string)
    The webhook URL that PXP should send status updates to, if the *Return status packets* feature is enabled for the device. This overrides the webhook URL configured in the Unity Portal.
    Example: http://192.168.204.43:5000/statuspacket

  - `merchantDeeplink` (string)
    A custom URI scheme that allows the merchant's mobile app to handle payment callbacks. When provided, the payment terminal or SDK will use this deeplink to redirect users back to the merchant's app after the transaction is completed. This is commonly used in mobile payment flows to create a seamless user experience.
    Example: myapp://payment/callback

## Response 200 fields (application/json):

  - `state` (string)
    The current state of the transaction.
    Enum: "Authorised", "Captured", "Cancelled", "Error", "Refused"

  - `stateData` (object)
    Key value pair for various state data. [Learn more about how this works](https://developer.pxp.io/guides/pos-plus/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 authorizing entity, indicating approval or reference for the transaction. This code typically consists of alphanumeric characters, starting with an uppercase letter, and serves as a key reference for authorisation verification.
    Example: A123456

  - `merchantTransactionDate` (string)
    Specifies 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)
    Represents 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)
    The system transaction Id is a unique identifier generated by PXP for each transaction. It serves as a reference for tracking and querying transactions within the PXP system. This Id is crucial for performing modifications or querying transaction details.
    Example: 1ed768bb-e88a-4636-91ae-67927ccbb02b

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

  - `fundingData` (object)
    The `cardResponse` object encapsulates essential information about a card involved in a transaction, including its scheme, payment account reference, and token IDs. Additionally, it provides verification results for enhanced security, such as CVC and AVS checks, enabling merchants to ensure transaction integrity and mitigate fraud risks efficiently. This object is returned if the `fundingType` under the `transactionMethod` is of type 'Card' or 'SchemeToken'.

  - `fundingData.maskedPrimaryAccountNumber` (string)
    The card's primary account number (PAN) masked for security, typically showing only the last four digits.
    Example: 463242******1234

  - `fundingData.expiryMonth` (string)
    This is the expiry month [MM] of the card.
    Example: 12

  - `fundingData.expiryYear` (string)
    This is the expiry year [YYYY] of the card.
    Example: 2026

  - `fundingData.cardScheme` (string)
    Specifies the payment card's scheme, indicating the network through which the card transactions are processed. The card scheme is typically represented by a capitalized abbreviation or 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.gatewayTokenId` (string)
    The gateway token Id represents 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.emvDataResponse` (object)
    Response containing EMV (Europay, MasterCard, and Visa) data from a payment transaction.

  - `fundingData.emvDataResponse.applicationId` (string)
    A unique identifier for the application used during the EMV transaction.
    Example: A0000000031010

  - `fundingData.emvDataResponse.applicationLabel` (string)
    The label or name of the application selected for the transaction, typically representing the card brand.
    Example: VISA CREDIT

  - `fundingData.emvDataResponse.authorisationResponseCode` (string)
    The response code indicating the outcome of the authorisation request.
    Example: 00

  - `fundingData.emvDataResponse.cardHolderVerificationMethodResults` (string)
    The results of the Cardholder Verification Method (CVM) used in the transaction, such as PIN verification or signature.
    Enum: "Pin verified", "Signature verified", "No CVM required"

  - `fundingData.emvDataResponse.panSequenceNumber` (string)
    The sequence number that differentiates cards with the same Primary Account Number (PAN) issued to the same account holder.
    Example: 01

  - `fundingData.emvDataResponse.preferredName` (string)
    The preferred name of the application as displayed on the terminal during the transaction.
    Example: Visa

  - `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 by the provider to represent the terminal involved in the transaction processing.
    Example: 7777218212

  - `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.retrievalReferenceNumber` (string)
    A unique reference, typically generated by the acquirer, to identify a specific transaction across the payment flow.
    Example: 613808317649

  - `fundingData.providerResponse.issuerResponseCode` (string)
    A two-character code that indicates the result of the transaction authorisation.
    Example: 00

  - `fundingData.providerResponse.schemeTransactionLinkId` (string)
    The scheme-assigned identifier (MasterCard Transaction Link Identifier) of the initial transaction in a series. Submit it on subsequent economically-related transactions (e.g., recurring, unscheduled card-on-file, resubmission) to link them to the original, so the scheme treats them as part of the same agreement rather than independent payments.
    Example: LINK-001

  - `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. This field is applicable and provided only for transactions processed using MasterCard. The settlement date is crucial for financial reconciliation and is formatted as an ISO 8601 timestamp.
    Example: 2024-01-25T00:00:00Z

  - `amounts` (object)
    Details about the transaction amounts, including the transaction value, currency, and optional gratuity.

  - `amounts.transaction` (number)
    The amount of the transaction.
    Example: 52

  - `amounts.currencyCode` (string)
    The currency code in ISO 4217 format.
    Example: EUR

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

  - `dccData` (object)
    Details about the Dynamic Currency Conversion (DCC) for the transaction, including rate selection, amounts in local and cardholder currencies, exchange rate, and provider details.

  - `dccData.rateSelectedIndicator` (string)
    The DCC selection state indicating whether DCC was selected, not selected, or unavailable due to an error or eligibility issue.
    Enum: "NotSelected", "Selected", "ErrorRetrievingDccData", "DccNotEligible", "InvalidDccTerminalId", "InvalidDccMerchantId", "NoDccSupported", "NoDccRateAvailable", "ServerErrorRetrievingDccData", "InvalidDccRequest", "DccTimeout"

  - `dccData.amount` (object)
    Details about the transaction amount in the local currency and the cardholder's currency.

  - `dccData.amount.local` (object, required)
    Details about the transaction amount in the local (merchant) currency.

  - `dccData.amount.local.transaction` (number, required)
    The transaction amount in the local currency.
    Example: 100

  - `dccData.amount.local.currencyCode` (string, required)
    The currency code in ISO 4217 format.
    Example: USD

  - `dccData.amount.cardholder` (object, required)
    Details about the transaction amount in the cardholder's currency.

  - `dccData.amount.cardholder.transaction` (number, required)
    The transaction amount in the cardholder's currency.
    Example: 85.5

  - `dccData.amount.cardholder.currencyCode` (string, required)
    The currency code in ISO 4217 format.
    Example: EUR

  - `dccData.exchangeRate` (number)
    The exchange rate used for the DCC conversion.
    Example: 0.855

  - `dccData.markupRate` (number)
    The markup rate applied to the DCC transaction.
    Example: 3.92

  - `dccData.disclaimer` (string)
    The disclaimer text for the DCC transaction.
    Example: Exchange rate includes markup

  - `dccData.providerData` (object)
    Details about the DCC provider.

  - `dccData.providerData.provider` (string)
    The name of the DCC provider.
    Example: Elavon

  - `dccData.providerData.referenceId` (string)
    The reference ID provided by the DCC provider.
    Example: REF123456789

  - `dccData.providerData.merchantId` (string)
    The merchant ID assigned by the DCC provider.
    Example: MERCH001

  - `dccData.providerData.terminalId` (string)
    The terminal ID assigned by the DCC provider.
    Example: TERM001

  - `dccData.providerData.markupTextIndicator` (integer)
    The markup text indicator for the DCC provider.
    Example: 1

## Response 400 fields (application/json):

  - `correlationId` (string)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated by PXP, serving as a critical tool for tracing and diagnosing transaction errors. This Id allows for the precise location of transactional issues, facilitating swift investigation and resolution by correlating specific transaction attempts or processes with error logs. Essential for support and operational teams, the correlationId enhances PXP's ability to maintain high-quality service and transaction reliability.
    Example: 81f32b80-2ba0-4430-8ecd-0b559274ba9c

  - `details` (array)
    TBC
    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)
    A unique identifier generated to correlate the error with a specific transaction attempt, facilitating easier tracking and resolution of issues.

  - `details` (array)
    An array of additional details about the error, potentially including system-specific information, sub-errors, or contextual data to aid in troubleshooting.

  - `errorCode` (string, required)
    A standardised 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.

