{
  "openapi": "3.0.0",
  "info": {
    "title": "Data API",
    "description": "NCP REST 2.0 Data API",
    "version": "1.3.8"
  },
  "servers": [
    {
      "url": "https://api-sandbox.nuvei.com/data-api",
      "description": "sandbox"
    },
    {
      "url": "https://api.nuvei.com/data-api",
      "description": "prod"
    }
  ],
  "tags": [
    {
      "name": "Transactions"
    }
  ],
  "paths": {
    "/entities/{processing-entity-id}/transactions/{transaction-id}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Retrieve Transaction Details",
        "description": "Retrieves the transaction details by `transactionId` or `merchantTransactionId`.",
        "operationId": "getTransactionDetails",
        "parameters": [
          {
            "name": "transaction-id",
            "in": "path",
            "description": "The transaction ID",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "maxLength": 50,
              "type": "string"
            },
            "example": "2110000000011875900"
          },
          {
            "name": "processing-entity-id",
            "in": "path",
            "description": "Processing `entityId` provided by Nuvei.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            },
            "example": "369bbe6d-4cbd-4d33-9205-2c83541cddab"
          },
          {
            "name": "source",
            "in": "query",
            "description": "Source of the `transactionId` - Nuvei (default value) or Merchant",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "default": "Nuvei",
              "enum": [
                "Nuvei",
                "Merchant"
              ]
            },
            "example": "Nuvei"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessTokenAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/entities/{processing-entity-id}/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Retrieve Transactions",
        "description": "Retrieves a list of transactions based on provided search criteria.",
        "operationId": "getTransactions",
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "description": "Start Date",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2020-02-20T00:00:00Z"
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "End Date",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2020-02-20T23:59:59Z"
          },
          {
            "name": "transaction_type",
            "in": "query",
            "description": "Transaction Type",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionType"
            },
            "example": "SALE"
          },
          {
            "name": "transaction_status",
            "in": "query",
            "description": "Transaction Status",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionStatus"
            },
            "example": "APPROVED"
          },
          {
            "name": "processing-entity-id",
            "in": "path",
            "description": "Processing `entityId` provided by Nuvei.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            },
            "example": "369bbe6d-4cbd-4d33-9205-2c83541cddab"
          },
          {
            "name": "size",
            "in": "query",
            "description": "Page size for pagination.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/SizeQuery"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Page number for pagination.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/OffsetQuery"
            }
          },
          {
            "name": "merchant_transaction_id",
            "in": "query",
            "description": "The transaction ID.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "maxLength": 50,
              "type": "string"
            },
            "example": "2110000000011875900"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionsResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessTokenAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "TransactionDetailsODS": {
        "title": "TransactionDetails",
        "type": "object",
        "properties": {
          "buyerDetails": {
            "$ref": "#/components/schemas/BuyerDetails"
          },
          "deviceDetails": {
            "$ref": "#/components/schemas/DeviceDetails"
          },
          "currencyConversion": {
            "$ref": "#/components/schemas/CurrencyConversionOutput"
          },
          "merchantDetails": {
            "$ref": "#/components/schemas/MerchantDetails"
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/TransactionDetails"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/TransactionDetailsPaymentOption"
          },
          "partialApproval": {
            "$ref": "#/components/schemas/PartialApproval"
          },
          "productDetails": {
            "$ref": "#/components/schemas/ProductDetails"
          },
          "subscription": {
            "$ref": "#/components/schemas/Subscription"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/SubMerchant"
          },
          "fraudDetails": {
            "$ref": "#/components/schemas/FraudDetails"
          },
          "dynamicDescriptor": {
            "$ref": "#/components/schemas/DynamicDescriptor"
          }
        },
        "description": "Transaction details as retrieved from cPanel services/ODS."
      },
      "TransactionDetailsResponse": {
        "title": "TransactionDetailsResponse",
        "description": "Transaction details response as retrieved from cPanel services/ODS.",
        "allOf": [
          {
            "$ref": "#/components/schemas/TransactionDetailsODS"
          },
          {
            "$ref": "#/components/schemas/BaseApiResponse"
          }
        ]
      },
      "DynamicDescriptor": {
        "title": "DynamicDescriptor",
        "type": "object",
        "properties": {
          "merchantName": {
            "maxLength": 25,
            "type": "string",
            "description": "The merchant name, as is displayed for the transaction on the consumer's card statement."
          },
          "merchantContactInformation": {
            "maxLength": 255,
            "type": "string",
            "description": "The merchant contact information, as is displayed for the transaction on the consumer's card statement. It can also be an email address."
          }
        }
      },
      "SubMerchant": {
        "title": "subMerchant",
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 15,
            "type": "string",
            "description": "Represents the internal merchant’s ID, which is forwarded to Visa and Mastercard"
          },
          "city": {
            "maxLength": 20,
            "type": "string",
            "description": "The payment facilitator’s sub-merchant’s city name."
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The payment facilitator’s sub-merchant’s [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes)."
          }
        }
      },
      "Subscription": {
        "title": "subscription",
        "type": "object",
        "properties": {
          "step": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "Id": {
            "type": "string"
          }
        }
      },
      "FraudDetails": {
        "title": "fraudDetails",
        "type": "object",
        "properties": {
          "fraudScore": {
            "type": "string",
            "description": "Refers to a number between 0 and 1 that indicates the probability of a transaction becoming fraudulent, which is calculated using a risk machine learning model."
          }
        }
      },
      "ProductDetails": {
        "title": "productDetails",
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "A free text field used to identify the product/service sold. If this parameter is left empty, need to insert a concatenation of all item names. It's not related to rebilling system product id. Risk rules and traffic management rules are usually built based on this field value."
          }
        }
      },
      "PartialApproval": {
        "title": "partialApproval",
        "type": "object",
        "properties": {
          "requestedCurrency": {
            "type": "string"
          },
          "requestedAmount": {
            "type": "string"
          }
        }
      },
      "TransactionDetailsPaymentOption": {
        "title": "transactionDetailsPaymentOption",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/TransactionDetailsCard"
          }
        }
      },
      "TransactionDetailsCard": {
        "title": "transactionDetailsCard",
        "type": "object",
        "properties": {
          "threeD": {
            "$ref": "#/components/schemas/TransactionDetailsThreeD"
          },
          "avsCode": {
            "type": "string",
            "description": "The address verification service (AVS) response. Values: A = The street address matches, the ZIP code does not. | W = Postal code matches, the street address does not. | Y = Postal code and the street address match. | X = An exact match of both the 9-digit ZIP code and the street address. | Z = Postal code matches, the street code does not. | U = Issuer is unavailable. | S = AVS not supported by issuer. | R = Retry. | B = Not authorized (declined). | N = Both the street address and postal code do not match."
          },
          "cvv2Code": {
            "type": "string",
            "description": "The CVV2 (card verification value) response. Values: M = CVV2 Match | N = CVV2 No Match | P = Not Processed | U = Issuer is not certified and/or has not provided Visa the encryption keys | S = CVV2 processor is unavailable."
          },
          "cardHolderName": {
            "type": "string",
            "description": "The card holder name."
          },
          "maskedCardNumber": {
            "type": "string",
            "description": "The masked credit card number."
          },
          "expirationMonth": {
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "type": "string",
            "description": "The card expiration year."
          },
          "bin": {
            "type": "integer",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuingCountry": {
            "type": "string"
          },
          "isPrepaid": {
            "type": "boolean",
            "description": "Indicates if the card is prepaid or not."
          },
          "cardBrand": {
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "cardType": {
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "paymentTokenId": {
            "type": "string"
          }
        }
      },
      "TransactionDetailsThreeD": {
        "title": "transactionDetailsThreeD",
        "type": "object",
        "properties": {
          "eci": {
            "type": "string",
            "description": "The Electronic Commerce Indicator (ECI) that indicates the level of security used in a 3D-Secure program when the cardholder provides payment information to the merchant. Visa values: 5 = The cardholder was successfully authenticated. | 6 = The issuer or cardholder does not participate in a 3D-Secure program. | 7 = Payment authentication was not performed. Mastercard values: 2 = The cardholder was successfully authenticated. | 1 = The issuer or cardholder does not participate in a 3D-Secure program. | 6 = Payment authentication was not performed. | 7 = The cardholder was successfully authenticated for the initial [MIT](https://docs.nuvei.com/?p=493091)."
          },
          "isLiabilityOnIssuer": {
            "type": "string",
            "description": "Indicates if there is 3D-Secure liability shift. If equal to “1” – Liability shift is present. If equal to “0”, empty or null – No liability shift has occurred."
          },
          "flow": {
            "type": "string"
          },
          "isExemptionRequestInAuthentication": {
            "type": "boolean"
          },
          "challengePreferenceReason": {
            "type": "string"
          },
          "exemptionRequest": {
            "type": "string"
          },
          "whiteListStatus": {
            "type": "boolean"
          },
          "authenticationType": {
            "type": "string"
          },
          "authenticationResult": {
            "type": "string"
          },
          "challengeStatus": {
            "type": "string"
          },
          "challengeCancelReason": {
            "type": "string"
          },
          "merchantPreference": {
            "type": "string"
          },
          "merchantPreferenceReason": {
            "type": "string"
          }
        }
      },
      "CurrencyConversionOutput": {
        "title": "currencyConversion",
        "type": "object",
        "properties": {
          "convertedCurrency": {
            "type": "string"
          },
          "convertedAmount": {
            "type": "number"
          },
          "originalAmount": {
            "type": "number",
            "description": "The original amount of the transaction in the currency that the merchant requested."
          },
          "originalCurrencyCode": {
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes) of the currency that the merchant requested in the transaction."
          },
          "rate": {
            "type": "number"
          },
          "markup": {
            "$ref": "#/components/schemas/Markup"
          },
          "isCurrencyConverted": {
            "type": "boolean"
          }
        }
      },
      "Markup": {
        "title": "markup",
        "type": "object",
        "properties": {
          "markup": {
            "type": "number"
          },
          "markupAmount": {
            "type": "number"
          },
          "amountWithoutMarkup": {
            "type": "number"
          },
          "markupAmountUSD": {
            "type": "number"
          }
        }
      },
      "MerchantDetails": {
        "title": "merchantDetails",
        "type": "object",
        "properties": {
          "clientName": {
            "type": "string"
          },
          "multiClientName": {
            "type": "string"
          }
        }
      },
      "TransactionDetails": {
        "title": "TransactionDetails",
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "originalTransactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "transactionStatus": {
            "type": "string",
            "description": "The Gateway transaction status. Values: APPROVED, DECLINED, ERROR"
          },
          "transactionType": {
            "type": "string",
            "description": "The type of transaction. Values: auth, sale, payout, refund, settle, void, initAuth3D, auth3D, sale3D."
          },
          "authCode": {
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "merchantTransactionId": {
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "custom": {
            "type": "string",
            "description": "Can be used to pass any type of information."
          },
          "credited": {
            "type": "string"
          },
          "transactionId": {
            "type": "string",
            "description": "The Gateway transaction ID."
          },
          "relatedTransactionId": {
            "type": "string",
            "description": "For recurring/rebilling and MIT, represents the reference to the original transaction ID of the initial transaction."
          },
          "processedAmount": {
            "type": "string",
            "description": "The amount that was actually deposited in the transaction."
          },
          "processedCurrency": {
            "type": "string",
            "description": "The [currency](https://docs.nuvei.com/?p=8513#currency-codes) used in the processed transaction request."
          },
          "creditType": {
            "type": "string",
            "description": "The credit type that was performed."
          },
          "acquiringBankName": {
            "type": "string",
            "description": "The acquiring bank name."
          },
          "isVoided": {
            "type": "string",
            "description": "Indicates if the transaction was voided."
          },
          "errorDescription": {
            "type": "string"
          }
        }
      },
      "DeviceDetails": {
        "title": "deviceDetails",
        "type": "object",
        "properties": {
          "deviceName": {
            "type": "string"
          },
          "deviceOS": {
            "type": "string"
          },
          "deviceType": {
            "type": "string",
            "description": "Supported device types include: DESKTOP, SMARTPHONE, TABLET, TV, UNKNOWN (if device type cannot be recognized)."
          },
          "ipAddress": {
            "type": "string",
            "description": "The customer's IP address."
          },
          "browser": {
            "$ref": "#/components/schemas/Browser"
          }
        }
      },
      "Browser": {
        "title": "browser",
        "type": "object",
        "properties": {
          "acceptHeader": {
            "type": "string",
            "description": "Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder's browser. If the total length of the accept header sent by the browser exceeds 2048 characters, the 3D-Secure Server truncates the excess portion."
          },
          "colorDepth": {
            "type": "integer",
            "description": "Value representing the bit depth of the color palette for displaying images, in bits per pixel. Obtained from cardholder browser using the screen.colorDepth property. Values: 1, 4, 8, 15, 16, 24, 32, 48"
          },
          "javaEnabled": {
            "type": "boolean",
            "description": "Represents the ability of the cardholder browser to execute Java. REQUIRED when `javaScriptEnabled` is TRUE. Value is returned from the navigator.javaEnabled property. Values: TRUE, FALSE"
          },
          "javaScriptEnabled": {
            "type": "boolean",
            "description": "Determines whether the browser is JavaScript enabled (from `navigator.javaScriptEnabled` property). Values: TRUE, FALSE"
          },
          "language": {
            "type": "string",
            "description": "Value representing the browser language as defined in IETF BCP47. Returned from `navigator.language` property."
          },
          "screenHeight": {
            "type": "integer",
            "description": "Total height of the cardholder's screen in pixels. Value is returned from the `screen.height` property."
          },
          "screenWidth": {
            "type": "integer",
            "description": "Total width of the cardholder's screen in pixels. Value is returned from the `screen`.width property."
          },
          "timeZone": {
            "type": "string",
            "description": "Time difference between UTC time and the cardholder browser local time, in minutes. Values: Value is returned from the `getTimezoneOffset()` method."
          },
          "userAgent": {
            "type": "string",
            "description": "Exact content of the HTTP user-agent header. Values: If the total length of the user-agent header sent by the browser exceeds 2048 characters, the 3D-Secure Server truncates the excess portion."
          }
        }
      },
      "BuyerDetails": {
        "title": "userDetails",
        "type": "object",
        "properties": {
          "buyerId": {
            "maxLength": 255,
            "type": "string",
            "description": "Unique customer identifier in your system."
          },
          "firstName": {
            "maxLength": 30,
            "type": "string"
          },
          "lastName": {
            "maxLength": 40,
            "type": "string"
          },
          "companyName": {
            "maxLength": 100,
            "type": "string"
          },
          "locale": {
            "maxLength": 5,
            "type": "string",
            "description": "The user's locale and default language."
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Format is YYYY-MM-DD.",
            "format": "date"
          },
          "email": {
            "maxLength": 100,
            "type": "string"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "phone2": {
            "maxLength": 18,
            "type": "string"
          },
          "workPhone": {
            "maxLength": 18,
            "type": "string"
          },
          "nationalIdentificationNumber": {
            "maxLength": 25,
            "type": "string",
            "description": "The user's national ID number."
          },
          "billingAddress": {
            "$ref": "#/components/schemas/BillingAddress"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/ShippingAddress"
          }
        }
      },
      "BillingAddress": {
        "title": "billingAddress",
        "required": [
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "address": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine2": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine3": {
            "maxLength": 60,
            "type": "string"
          },
          "state": {
            "maxLength": 6,
            "type": "string",
            "description": "[ISO country subdivision code](https://docs.nuvei.com/?p=8513#country-subdivision-codes)"
          },
          "zip": {
            "maxLength": 10,
            "type": "string"
          },
          "city": {
            "maxLength": 30,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes)."
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "addressMatch": {
            "type": "boolean",
            "description": "Set to “true” when address matches shipping address.",
            "default": false
          }
        }
      },
      "ShippingAddress": {
        "title": "shippingAddress",
        "type": "object",
        "properties": {
          "sameAsBilling": {
            "type": "boolean",
            "default": false
          },
          "address": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine2": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine3": {
            "maxLength": 60,
            "type": "string"
          },
          "state": {
            "maxLength": 6,
            "type": "string",
            "description": "[ISO country subdivision code](https://docs.nuvei.com/?p=8513#country-subdivision-codes)"
          },
          "zip": {
            "maxLength": 10,
            "type": "string"
          },
          "city": {
            "maxLength": 30,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes)."
          },
          "firstName": {
            "maxLength": 30,
            "type": "string"
          },
          "lastName": {
            "maxLength": 40,
            "type": "string"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "phone2": {
            "maxLength": 18,
            "type": "string"
          }
        }
      },
      "TransactionsResponse": {
        "title": "TransactionsResponse",
        "type": "object",
        "properties": {
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "Transaction": {
        "title": "transaction",
        "type": "object",
        "properties": {
          "transactionType": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "externalTransactionId": {
            "type": "string"
          },
          "paymentId": {
            "type": "string"
          },
          "transactionId": {
            "type": "string"
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "relatedTransactionId": {
            "type": "string"
          },
          "transactionStatus": {
            "type": "string",
            "example": "approved"
          },
          "merchantTransactionId": {
            "type": "string"
          },
          "authCode": {
            "type": "string"
          },
          "custom": {
            "type": "string"
          },
          "credited": {
            "type": "string"
          },
          "processedAmount": {
            "type": "string"
          },
          "processedCurrency": {
            "type": "string"
          },
          "creditType": {
            "type": "string"
          },
          "acquiringBankName": {
            "type": "string"
          },
          "isVoided": {
            "type": "string"
          },
          "errorDescription": {
            "type": "string"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOption"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/SubMerchant"
          },
          "dynamicDescriptor": {
            "$ref": "#/components/schemas/DynamicDescriptor"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/AdditionalTransactionInfo"
          }
        }
      },
      "TransactionType": {
        "type": "string",
        "example": "SALE",
        "enum": [
          "SALE",
          "AUTH",
          "REFUND",
          "SETTLE",
          "VOID",
          "AUTH3D",
          "SALE3D",
          "INITAUTH3D"
        ]
      },
      "TransactionStatus": {
        "type": "string",
        "example": "APPROVED",
        "enum": [
          "APPROVED",
          "DECLINE",
          "ERROR",
          "PENDING"
        ]
      },
      "PaymentOption": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          },
          "paymentToken": {
            "$ref": "#/components/schemas/PaymentToken"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentToken"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/AlternativePaymentMethod"
          }
        }
      },
      "AdditionalTransactionInfo": {
        "type": "object",
        "properties": {
          "additionalTransactionBankId": {
            "type": "string"
          },
          "referenceId": {
            "type": "string"
          }
        }
      },
      "Card": {
        "type": "object",
        "properties": {
          "threeD": {
            "$ref": "#/components/schemas/ThreeD"
          },
          "avsCode": {
            "type": "string"
          },
          "cvv2Code": {
            "type": "string"
          },
          "cardHolderName": {
            "type": "string"
          },
          "maskedCardNumber": {
            "type": "string"
          },
          "expirationMonth": {
            "type": "string"
          },
          "expirationYear": {
            "type": "string"
          },
          "bin": {
            "type": "integer"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuingCountry": {
            "type": "string"
          },
          "isPrepaid": {
            "type": "boolean"
          },
          "cardBrand": {
            "type": "string"
          },
          "cardType": {
            "type": "string"
          },
          "paymentTokenId": {
            "type": "string"
          }
        }
      },
      "ThreeD": {
        "type": "object",
        "properties": {
          "eci": {
            "type": "string"
          },
          "isLiabilityOnIssuer": {
            "type": "string"
          },
          "flow": {
            "type": "string"
          },
          "isExemptionRequestInAuthentication": {
            "type": "boolean"
          },
          "challengePreferenceReason": {
            "type": "string"
          },
          "exemptionRequest": {
            "type": "string"
          },
          "whiteListStatus": {
            "type": "boolean"
          },
          "authenticationType": {
            "type": "string"
          },
          "authenticationResult": {
            "type": "string"
          },
          "challengeStatus": {
            "type": "string"
          },
          "challengeCancelReason": {
            "type": "string"
          },
          "merchantPreference": {
            "type": "string"
          },
          "merchantPreferenceReason": {
            "type": "string"
          }
        }
      },
      "AdditionalData": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "type": "string"
          },
          "routingNumber": {
            "type": "string"
          }
        }
      },
      "PaymentToken": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "type": "string"
          },
          "additionalData": {
            "$ref": "#/components/schemas/AdditionalData"
          }
        }
      },
      "TemporaryPaymentToken": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "type": "string"
          },
          "merchantReference": {
            "type": "string"
          }
        }
      },
      "APMData": {
        "type": "object",
        "properties": {
          "accountNumber": {
            "type": "string"
          },
          "routingNumber": {
            "type": "string"
          }
        }
      },
      "AlternativePaymentMethod": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/APMData"
          },
          "merchantContactInformation": {
            "maxLength": 255,
            "type": "string",
            "description": "The merchant contact information, as is displayed for the transaction on the consumer's card statement. It can also be an email address."
          }
        }
      },
      "SizeQuery": {
        "maximum": 30,
        "minimum": 1,
        "type": "integer",
        "example": 30,
        "default": 30
      },
      "OffsetQuery": {
        "minimum": 0,
        "type": "integer",
        "example": 10,
        "default": 0
      },
      "GetTransactionResult": {
        "title": "getTransactionResult",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "userTokenId": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "deviceType": {
            "type": "string"
          },
          "deviceName": {
            "type": "string"
          },
          "deviceOS": {
            "type": "string"
          },
          "convertedCurrency": {
            "type": "string"
          },
          "clientName": {
            "type": "string"
          },
          "multiClientName": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "originalTransactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "transactionResultDescription": {
            "type": "string"
          },
          "filterReason": {
            "type": "string"
          },
          "convertedAmount": {
            "type": "number"
          },
          "transactionTypeDescription": {
            "type": "string"
          },
          "rebill": {
            "type": "boolean"
          },
          "approved": {
            "type": "boolean"
          },
          "authCode": {
            "type": "string"
          },
          "avsCode": {
            "type": "string"
          },
          "cvv2Reply": {
            "type": "string"
          },
          "reasonCode": {
            "type": "string"
          },
          "clientPaymentID": {
            "type": "string"
          },
          "clientUniqueID": {
            "type": "string"
          },
          "customData": {
            "type": "string"
          },
          "credited": {
            "type": "string"
          },
          "transactionMainId": {
            "type": "string"
          },
          "encryptRelatedTransId": {
            "type": "string"
          },
          "relatedTransactionId": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "cccId": {
            "type": "string"
          },
          "nameOnCard": {
            "type": "string"
          },
          "cardNumber": {
            "type": "string"
          },
          "expDate": {
            "type": "string"
          },
          "correctType": {
            "type": "string"
          },
          "correctDate": {
            "type": "string"
          },
          "correctReason": {
            "type": "string"
          },
          "correctDemander": {
            "type": "string"
          },
          "correctAmount": {
            "type": "string"
          },
          "correctComments": {
            "type": "string"
          },
          "correctReference": {
            "type": "string"
          },
          "scReasonCode": {
            "type": "string"
          },
          "webSite": {
            "type": "string"
          },
          "affiliate": {
            "type": "string"
          },
          "scProductid": {
            "type": "string"
          },
          "originalAmount": {
            "type": "number"
          },
          "originalCurrencyCode": {
            "type": "string"
          },
          "rate": {
            "type": "number"
          },
          "markup": {
            "type": "number"
          },
          "markupAmount": {
            "type": "number"
          },
          "amountWithoutMarkup": {
            "type": "number"
          },
          "markupAmountUSD": {
            "type": "number"
          },
          "transactionClientId": {
            "type": "string"
          },
          "isReview": {
            "type": "string"
          },
          "reviewHandled": {
            "type": "string"
          },
          "reviewFolder": {
            "type": "string"
          },
          "reviewTriggers": {
            "type": "string"
          },
          "isCurrencyConverted": {
            "type": "boolean"
          },
          "accountID": {
            "type": "string"
          },
          "bankTransactionID": {
            "type": "string"
          },
          "pppOrderID": {
            "type": "string"
          },
          "paymentMethod": {
            "type": "string"
          },
          "bin": {
            "type": "integer"
          },
          "issuerBankName": {
            "type": "string"
          },
          "acquiringBankName": {
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "binCountry": {
            "type": "string"
          },
          "issuingCountry": {
            "type": "string"
          },
          "ipCountry": {
            "type": "string"
          },
          "eci": {
            "type": "string"
          },
          "isAPM": {
            "type": "boolean"
          },
          "isPrepaid": {
            "type": "boolean"
          },
          "productID": {
            "type": "string"
          },
          "posTerminalId": {
            "type": "string"
          },
          "posOfflineTransaction": {
            "type": "string"
          },
          "posMerchantAttendance": {
            "type": "string"
          },
          "posTerminalAddress": {
            "type": "string"
          },
          "posTerminalZip": {
            "type": "string"
          },
          "posTerminalCity": {
            "type": "string"
          },
          "posTerminalState": {
            "type": "string"
          },
          "posTerminalCountry": {
            "type": "string"
          },
          "processingChannel": {
            "type": "string"
          },
          "cvvResult": {
            "type": "string"
          },
          "posEntryMode": {
            "type": "string"
          },
          "subscriptionId": {
            "type": "string"
          },
          "providerDeclineReason": {
            "type": "string"
          },
          "descriptor": {
            "type": "string"
          },
          "cardBrand": {
            "type": "string"
          },
          "safechargeResult": {
            "type": "string"
          },
          "isVoided": {
            "type": "string"
          },
          "cardProductType": {
            "type": "string"
          },
          "isExternalMPI": {
            "type": "boolean"
          },
          "isPSD2": {
            "type": "boolean"
          },
          "isSCAScope": {
            "type": "boolean"
          },
          "liabilityShift": {
            "type": "string"
          },
          "threeDVersion": {
            "type": "string"
          },
          "authenticationFlow": {
            "type": "string"
          },
          "isExemptionRequestedByAcquirer": {
            "type": "boolean"
          },
          "requestIndication": {
            "type": "string"
          },
          "exemptionReason": {
            "type": "string"
          },
          "exemptionRequest": {
            "type": "string"
          },
          "isWhiteListStatus": {
            "type": "boolean"
          },
          "messageVersion": {
            "type": "string"
          },
          "authenticationTrasactionStatus": {
            "type": "string"
          },
          "authenticationType": {
            "type": "string"
          },
          "challengeStatus": {
            "type": "string"
          },
          "challengeCancellationReason": {
            "type": "string"
          },
          "rReqAuthenticationStatus": {
            "type": "string"
          },
          "challengeResult": {
            "type": "string"
          },
          "merchantPreference": {
            "type": "string"
          },
          "merchantPreferenceReason": {
            "type": "string"
          },
          "rReqAuthenticationStatus1": {
            "type": "string"
          },
          "externalTokenProvider": {
            "type": "boolean"
          },
          "apmProviderSubMethod": {
            "type": "string"
          },
          "apmSubMethod": {
            "type": "string"
          },
          "additionalAPMReference": {
            "type": "string"
          },
          "apmAdditionalInformationok": {
            "type": "string"
          },
          "arn": {
            "type": "string"
          },
          "isPartialAmount": {
            "type": "boolean"
          },
          "requestedCurrency": {
            "type": "string"
          },
          "requestedAmount": {
            "type": "string"
          },
          "processedAmount": {
            "type": "string"
          },
          "processedCurrency": {
            "type": "string"
          },
          "merchantName": {
            "type": "string"
          },
          "subMerchantCity": {
            "type": "string"
          },
          "subMerchantCountry": {
            "type": "string"
          },
          "fraudScore": {
            "type": "string"
          },
          "enablePartialApproval": {
            "type": "boolean"
          },
          "schemeTokenUsed": {
            "type": "boolean"
          },
          "schemeTokenProvisionAttempted": {
            "type": "boolean"
          },
          "schemeTokenProvisioned": {
            "type": "boolean"
          },
          "refundsBalance": {
            "type": "number"
          },
          "cardType": {
            "type": "string"
          },
          "is3D": {
            "type": "string"
          },
          "pan": {
            "type": "string"
          },
          "creditType": {
            "type": "string"
          },
          "newPAN": {
            "type": "string"
          },
          "newBIN": {
            "type": "string"
          },
          "newExpirationDate": {
            "type": "string"
          },
          "abuResponseDescription": {
            "type": "string"
          },
          "enrollmentStatus": {
            "type": "string"
          },
          "authenticationStatus": {
            "type": "string"
          },
          "originalECI": {
            "type": "string"
          },
          "ipCity": {
            "type": "string"
          },
          "ipState": {
            "type": "string"
          },
          "ipISP": {
            "type": "string"
          },
          "shippingAddress": {
            "type": "string"
          },
          "shippingCity": {
            "type": "string"
          },
          "shippingState": {
            "type": "string"
          },
          "shippingCountry": {
            "type": "string"
          },
          "shippingZip": {
            "type": "string"
          },
          "shippingPhone": {
            "type": "string"
          },
          "shippingFirstName": {
            "type": "string"
          },
          "shippingLastName": {
            "type": "string"
          },
          "reviewDate": {
            "type": "string"
          },
          "eciInfo": {
            "type": "string"
          },
          "subscriptionStep": {
            "type": "string"
          },
          "subscriptionType": {
            "type": "string"
          },
          "encryptedID": {
            "type": "string"
          },
          "batchID": {
            "type": "string"
          },
          "flightDate": {
            "type": "string"
          },
          "travelAgencyCode": {
            "type": "string"
          },
          "travelAgencyName": {
            "type": "string"
          },
          "passengersCount": {
            "type": "string"
          },
          "infantsCount": {
            "type": "string"
          },
          "isCardHolderTraveling": {
            "type": "string"
          },
          "documentType": {
            "type": "string"
          },
          "ticketNumber": {
            "type": "string"
          },
          "pnrCode": {
            "type": "string"
          },
          "firstDepartureAirport": {
            "type": "string"
          },
          "firstDepartureCountry": {
            "type": "string"
          },
          "lastDestinationCountry": {
            "type": "string"
          },
          "lastDestinationAiport": {
            "type": "string"
          },
          "paymentAccountIdentifier": {
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        },
        "description": "Transaction details as retrieved from Control Panel Services/ODS or error message."
      },
      "EntityId": {
        "type": "string",
        "description": "Entity ID",
        "format": "uuid"
      },
      "BaseApiResponse": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/BaseApiResultOutput"
          }
        }
      },
      "BaseApiResultOutput": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BaseResultStatus"
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "BaseResultStatus": {
        "type": "string",
        "description": "Status of the request: success | error",
        "enum": [
          "success",
          "error"
        ]
      },
      "ResultError": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 11,
            "type": "string",
            "description": "If an error occurred on the request side, an error code is returned in this parameter.",
            "example": "7000.1000"
          },
          "reason": {
            "maxLength": 400,
            "type": "string",
            "description": "If an error occurred on the request side, then an error reason is returned in this parameter.",
            "example": "Internal Processing Error"
          },
          "reference": {
            "maxLength": 400,
            "type": "string",
            "description": "Reference value for troubleshooting",
            "example": "110.1260"
          }
        },
        "description": "If an error occurred on the request side, an error code is returned in this parameter."
      },
      "ApiResultOutput": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ResultStatus"
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "ResultStatus": {
        "type": "string",
        "enum": [
          "approved",
          "authorizedOnly",
          "declined",
          "error",
          "pending",
          "redirect",
          "challenge",
          "fingerprint",
          "authenticated",
          "authenticationNotSupported"
        ]
      }
    },
    "parameters": {
      "transaction-id": {
        "name": "transaction-id",
        "in": "path",
        "description": "The transaction ID",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "maxLength": 50,
          "type": "string"
        },
        "example": "2110000000011875900"
      },
      "transaction_id_source": {
        "name": "source",
        "in": "query",
        "description": "Source of the `transactionId` - Nuvei (default value) or Merchant",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "string",
          "default": "Nuvei",
          "enum": [
            "Nuvei",
            "Merchant"
          ]
        },
        "example": "Nuvei"
      },
      "processing-entity-id": {
        "name": "processing-entity-id",
        "in": "path",
        "description": "Processing `entityId` provided by Nuvei.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/EntityId"
        },
        "example": "369bbe6d-4cbd-4d33-9205-2c83541cddab"
      },
      "start_date": {
        "name": "start_date",
        "in": "query",
        "description": "Start Date",
        "required": true,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "string",
          "format": "date-time"
        },
        "example": "2020-02-20T00:00:00Z"
      },
      "end_date": {
        "name": "end_date",
        "in": "query",
        "description": "End Date",
        "required": true,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "string",
          "format": "date-time"
        },
        "example": "2020-02-20T23:59:59Z"
      },
      "transaction_type": {
        "name": "transaction_type",
        "in": "query",
        "description": "Transaction Type",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/TransactionType"
        },
        "example": "SALE"
      },
      "transaction_status": {
        "name": "transaction_status",
        "in": "query",
        "description": "Transaction Status",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/TransactionStatus"
        },
        "example": "APPROVED"
      },
      "size_query_string": {
        "name": "size",
        "in": "query",
        "description": "Page size for pagination.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/SizeQuery"
        }
      },
      "offset_query_string": {
        "name": "offset",
        "in": "query",
        "description": "Page number for pagination.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/OffsetQuery"
        }
      },
      "merchant_transaction_id": {
        "name": "merchant_transaction_id",
        "in": "query",
        "description": "The transaction ID.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "maxLength": 50,
          "type": "string"
        },
        "example": "2110000000011875900"
      }
    },
    "securitySchemes": {
      "accessTokenAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  }
}