{
  "openapi": "3.0.0",
  "info": {
    "title": "Payments API",
    "description": "NCP REST 2.0 Payments API",
    "version": "2.3.56"
  },
  "servers": [
    {
      "url": "https://api-sandbox.nuvei.com/payment-api",
      "description": "sandbox"
    },
    {
      "url": "https://api.nuvei.com/payment-api",
      "description": "prod"
    }
  ],
  "tags": [
    {
      "name": "Payment and Backoffice Operations"
    },
    {
      "name": "Advanced Refund Operations"
    },
    {
      "name": "Advanced Void Operations"
    }
  ],
  "paths": {
    "/payments": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Payment (Auth, PreAuth or Sale)",
        "description": "Creates a payment request for transaction types Auth, PreAuth or Sale.",
        "operationId": "postPayments",
        "parameters": [
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentsRequest"
              },
              "examples": {
                "Card non-3D Payment": {
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "merchantTransactionId": "e607a97a-be81-43ba-a261-f0833e20afc0",
                    "amount": 100,
                    "currency": "USD",
                    "isPartialApproval": false,
                    "transactionType": "Auth",
                    "paymentOption": {
                      "store": "none",
                      "card": {
                        "cardHolderName": "John Doe",
                        "cardNumber": "5101081046006034",
                        "expirationMonth": "12",
                        "expirationYear": "28",
                        "cvv": "456"
                      }
                    },
                    "buyerDetails": {
                      "buyerId": "john@doe.com",
                      "firstName": "John",
                      "lastName": "Doe",
                      "locale": "en-US",
                      "email": "john@doe.com",
                      "phone": 18735556709,
                      "billingAddress": {
                        "state": "TX",
                        "city": "Austin",
                        "zip": "78652",
                        "countryCode": "US"
                      },
                      "shippingAddress": {
                        "sameAsBilling": true
                      }
                    },
                    "custom": {
                      "marketingCampaign": "HOLIDAYS2024"
                    }
                  }
                },
                "ACH Payment": {
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "merchantTransactionId": "e607a97a-be81-43ba-a261-f0833e20afc0",
                    "amount": 50,
                    "currency": "USD",
                    "transactionType": "Sale",
                    "paymentOption": {
                      "store": "none",
                      "alternativePaymentMethod": {
                        "name": "ACH",
                        "data": {
                          "accountNumber": "11345739548759",
                          "routingNumber": "847937857"
                        }
                      }
                    },
                    "buyerDetails": {
                      "buyerId": "john@doe.com",
                      "firstName": "John",
                      "lastName": "Doe",
                      "locale": "en-US",
                      "email": "john@doe.com",
                      "phone": 18735556709,
                      "billingAddress": {
                        "state": "TX",
                        "city": "Austin",
                        "zip": "78652",
                        "countryCode": "US"
                      },
                      "shippingAddress": {
                        "sameAsBilling": true
                      }
                    }
                  }
                },
                "Card 3D Payment": {
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "merchantTransactionId": "e607a97a-be81-43ba-a261-f0833e20afc0",
                    "amount": 47.86,
                    "currency": "USD",
                    "paymentOption": {
                      "store": "buyerToken",
                      "card": {
                        "cardHolderName": "John Doe",
                        "cardNumber": "4895373566139987",
                        "expirationMonth": "03",
                        "expirationYear": "28",
                        "threeD": {
                          "fingerprintNotificationUrl": "www.fingerprintNotification.8351.com",
                          "challengeNotificationUrl": "www.challengeNotification.4343.com",
                          "challengeWindowSize": "05",
                          "externalRiskScore": 50
                        }
                      }
                    },
                    "buyerDetails": {
                      "buyerId": "john@doe.com",
                      "firstName": "John",
                      "lastName": "Doe",
                      "locale": "en-US",
                      "email": "john@doe.com",
                      "phone": 18735556709,
                      "billingAddress": {
                        "state": "TX",
                        "city": "Austin",
                        "zip": "78652",
                        "countryCode": "US"
                      },
                      "shippingAddress": {
                        "sameAsBilling": true
                      }
                    },
                    "transactionType": "Sale"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsFingerprintResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsFingerprintResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsFingerprintResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsFingerprintResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentsFingerprintResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/fingerprint": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Payment (3D Fingerprinting)",
        "description": "Processes a payment request after the Device Fingerprinting step in the 3D payment flow.",
        "operationId": "postPaymentsFingerprint",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FingerprintRequest"
              },
              "examples": {
                "Successful Fingerprinting": {
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "fingerprintingIndicator": "Y"
                  }
                },
                "Unsuccessful Fingerprinting": {
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "fingerprintingIndicator": "N"
                  }
                },
                "Unattempted Fingerprinting": {
                  "summary": "Unattempted Device Fingerprinting",
                  "value": {
                    "processingEntityId": "f6452a8c-c148-4aca-8c06-ad95c5adfe7f",
                    "fingerprintingIndicator": "U"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DResponse"
                },
                "examples": {
                  "Approved Card 3D Challenge": {
                    "summary": "Auth3D transaction Approved - 3DS Challenge Flow",
                    "value": {
                      "paymentId": "49900038994789921",
                      "transactionId": "2110000000011875918",
                      "amount": 74.8,
                      "currency": "USD",
                      "transactionType": "Auth3D",
                      "result": {
                        "status": "challenge"
                      },
                      "partialApproval": {
                        "requestedAmount": 74.8,
                        "requestedCurrency": "USD"
                      },
                      "paymentOption": {
                        "card": {
                          "cardHolderName": "John Doe",
                          "maskedCardNumber": "5***0008",
                          "bin": "554506",
                          "last4Digits": "0008",
                          "expirationMonth": "09",
                          "expirationYear": "28",
                          "acquirerId": "99",
                          "cardType": "Credit",
                          "cardBrand": "MASTERCARD",
                          "threeD": {
                            "dsTransId": "4f92a9ef-6196-4a89-a25c-97df99f835d0",
                            "acsUrl": "https://3dsn-qa.nuvei.com/api/ThreeDSACSChallengeController/ChallengePage?eyJub3RpZmljYXRpb25VUkwiOiJ3d3cuY2hhbGxlbmdlTm90aWZpY2F0aW9uLjI1NTEuY29tIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJmYjM2MzJhYi02NGQzLTQ2MjgtYmY1My1mMjE1ZDIzNWFiNzIiLCJhY3NUcmFuc0lEIjoiM2YxZTgxODAtMDQ0Yy00NTJjLWJhMmYtN2U0ZWI1NmEzZmM1IiwiZHNUcmFuc0lEIjoiNGY5MmE5ZWYtNjE5Ni00YTg5LWEyNWMtOTdkZjk5ZjgzNWQwIiwiZGF0YSI6bnVsbCwiTWVzc2FnZVZlcnNpb24iOiIyLjIuMCJ9",
                            "cReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImZiMzYzMmFiLTY0ZDMtNDYyOC1iZjUzLWYyMTVkMjM1YWI3MiIsImFjc1RyYW5zSUQiOiIzZjFlODE4MC0wNDRjLTQ1MmMtYmEyZi03ZTRlYjU2YTNmYzUiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDUiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIn0",
                            "acsTransId": "3f1e8180-044c-452c-ba2f-7e4eb56a3fc5",
                            "version": "2.2.0",
                            "eci": "2",
                            "acsChallengeMandate": "Y",
                            "authenticationType": "01",
                            "authenticationResult": "C",
                            "flow": "Challenge",
                            "challengePreferenceReason": "NoPreference",
                            "acquirerDecision": "ExemptionRequest"
                          }
                        }
                      }
                    }
                  },
                  "Successfully Authorized 3D payment - Frictionless Flow": {
                    "summary": "Successfully Authorized 3D Payment - Frictionless Flow",
                    "value": {
                      "paymentId": "49900038994789921",
                      "transactionId": "2110000000011875929",
                      "externalTransactionId": "211011875929",
                      "amount": 84.94,
                      "currency": "USD",
                      "transactionType": "Auth",
                      "result": {
                        "status": "authorizedOnly"
                      },
                      "authCode": "556180",
                      "partialApproval": {
                        "requestedAmount": 84.94,
                        "requestedCurrency": "USD"
                      },
                      "paymentOption": {
                        "card": {
                          "cardHolderName": "John Doe",
                          "maskedCardNumber": "5***0008",
                          "bin": "554506",
                          "last4Digits": "0008",
                          "expirationMonth": "08",
                          "expirationYear": "24",
                          "acquirerId": "99",
                          "cardType": "Credit",
                          "cardBrand": "MASTERCARD",
                          "threeD": {
                            "dsTransId": "ebc72fd5-20a1-4d95-83f3-cf8061747f2c",
                            "version": "2.2.0",
                            "eci": "2",
                            "cavv": "ejJRWG9SWWRpU2I1M21DelozSXU=",
                            "acsChallengeMandate": "Y",
                            "authenticationType": "01",
                            "authenticationResult": "C",
                            "flow": "Frictionless",
                            "challengePreferenceReason": "TransactionRiskAnalysis",
                            "acquirerDecision": "ExemptionRequest"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/challenge": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Payment (3D Challenge)",
        "description": "Processes a payment request after the Challenge step in the 3D payment flow.",
        "operationId": "postPaymentsChallenge",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChallengeRequest"
              },
              "examples": {
                "Successful Challenge": {
                  "value": {
                    "processingEntityId": "2ab3fe3c-09f1-4058-aa0d-dd85ed9ff347",
                    "cRes": "eyJhY3NUcmFuc0lEIjoiODc3OTFjZWUtMjUxNC00MzZjLWJlZDgtYTYzYTg3YmJkZjAxIiwiY2hhbGxlbmdlQ29tcGxldGlvbkluZCI6IlkiLCJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJkNDFmNjIwMC0wNDM1LTQ5ZWUtYWExMS1mMzY2ZjA2NjFjNmYiLCJ0cmFuc1N0YXR1cyI6IlkifQ"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DChallengeResponse"
                },
                "examples": {
                  "Successfully Authorized 3D Payment": {
                    "summary": "Successfully Authorized 3D Payment",
                    "value": {
                      "paymentId": "49900038994789921",
                      "transactionId": "2110000000011875929",
                      "externalTransactionId": "211011875929",
                      "amount": 84.94,
                      "currency": "USD",
                      "transactionType": "Auth",
                      "result": {
                        "status": "authorizedOnly"
                      },
                      "authCode": "556180",
                      "partialApproval": {
                        "requestedAmount": 84.94,
                        "requestedCurrency": "USD"
                      },
                      "paymentOption": {
                        "card": {
                          "cardHolderName": "John Doe",
                          "maskedCardNumber": "5***0008",
                          "bin": "554506",
                          "last4Digits": "0008",
                          "expirationMonth": "08",
                          "expirationYear": "24",
                          "acquirerId": "99",
                          "cardType": "Credit",
                          "cardBrand": "MASTERCARD",
                          "threeD": {
                            "fingerprintPayload": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNjNjk1OWFkLWQ1YjAtNDE2OS1hNWY0LTY0YmY4YmMwYzY5MiIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJ3d3cuZmluZ2VycHJpbnROb3RpZmljYXRpb24uMjUzMC5jb20ifQ==",
                            "dsTransId": "ebc72fd5-20a1-4d95-83f3-cf8061747f2c",
                            "version": "2.2.0",
                            "eci": "2",
                            "cavv": "ejJRWG9SWWRpU2I1M21DelozSXU=",
                            "acsChallengeMandate": "Y",
                            "authenticationType": "01",
                            "authenticationResult": "C",
                            "flow": "Challenge",
                            "challengePreferenceReason": "TransactionRiskAnalysis",
                            "acquirerDecision": "ExemptionRequest"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DChallengeResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DChallengeResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DChallengeResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payments3DChallengeResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/voids": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Void (Auth or Sale)",
        "description": "Creates a void request for a previously performed Sale or Auth transaction.",
        "operationId": "postPaymentPaymentIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidOrRefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/voids/{void-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Void of Payment)",
        "description": "Voids a previous Void request of a payment.",
        "operationId": "postPaymentPaymentIdVoidVoidIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "void-id",
            "in": "path",
            "description": "Void ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/refunds": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Refund (Sale)",
        "description": "Creates a refund request following a Sale transaction.",
        "operationId": "postPaymentPaymentIdRefund",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/refunds/{refund-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Refund)",
        "description": "Voids a previous Refund request.",
        "operationId": "postPaymentPaymentIdRefundRefundIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "refund-id",
            "in": "path",
            "description": "Refund ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/refunds/{refund-id}/voids/{void-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Void of Refund)",
        "description": "Voids a previous Void request of a refund.",
        "operationId": "postPaymentPaymentIdRefundRefundIdVoidVoidIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "refund-id",
            "in": "path",
            "description": "Refund ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "void-id",
            "in": "path",
            "description": "Void ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles": {
      "post": {
        "tags": [
          "Payment and Backoffice Operations"
        ],
        "summary": "Create Settle (Approved Auth)",
        "description": "Creates a settle (capture) request following a previously approved Auth transaction.",
        "operationId": "postPaymentPaymentIdSettle",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettleResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles/{settle-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Settle)",
        "description": "Voids a Settle request.",
        "operationId": "postPaymentPaymentIdSettleSettleIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "settle-id",
            "in": "path",
            "description": "Settle ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidOrRefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidOrRefundResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles/{settle-id}/voids/{void-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Void of Settle)",
        "description": "Voids a previous Void request of a settle.",
        "operationId": "postPaymentPaymentIdSettleSettleIdVoidVoidIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "settle-id",
            "in": "path",
            "description": "Settle ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "void-id",
            "in": "path",
            "description": "Void ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles/{settle-id}/refunds": {
      "post": {
        "tags": [
          "Advanced Refund Operations"
        ],
        "summary": "Create Refund (Settle)",
        "description": "Creates a refund request following a Settle transaction.",
        "operationId": "postPaymentPaymentIdSettleSettleIdRefund",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "settle-id",
            "in": "path",
            "description": "Settle ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles/{settle-id}/refunds/{refund-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Refund of Settle)",
        "description": "Voids a previous Refund request of a settle.",
        "operationId": "postPaymentPaymentIdSettleSettleIdRefundRefundIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "settle-id",
            "in": "path",
            "description": "Settle ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "refund-id",
            "in": "path",
            "description": "Refund ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payments/{payment-id}/settles/{settle-id}/refunds/{refund-id}/voids/{void-id}/voids": {
      "post": {
        "tags": [
          "Advanced Void Operations"
        ],
        "summary": "Void a (Void of Refunded Settle)",
        "description": "Voids a previous Void of a refunded settle.",
        "operationId": "postPaymentPaymentIdSettleSettleIdRefundRefundIdVoidVoidIdVoid",
        "parameters": [
          {
            "name": "payment-id",
            "in": "path",
            "description": "Payment ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "settle-id",
            "in": "path",
            "description": "Settle ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "refund-id",
            "in": "path",
            "description": "Refund ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "void-id",
            "in": "path",
            "description": "Void ID generated by REST API",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "49900038994789921"
          },
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VoidRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoidResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/refunds": {
      "post": {
        "tags": [
          "Advanced Refund Operations"
        ],
        "summary": "Create Unrelated Refund",
        "description": "Creates an unrelated refund to a previous transaction.",
        "operationId": "postRefund",
        "parameters": [
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnreferencedRefundRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/payouts": {
      "post": {
        "tags": [
          "Payout"
        ],
        "summary": "Create a payout",
        "description": "Creates a Payout.",
        "operationId": "postPayout",
        "parameters": [
          {
            "name": "idempotency-key",
            "in": "header",
            "description": "Idempotency Key for the request",
            "required": false,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "string"
            },
            "example": "31f9952c-0058-458b-8244-4ae110ef1556"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessToken": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "PaymentsRequest": {
        "title": "paymentsRequest",
        "required": [
          "amount",
          "currency",
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "agentId": {
            "type": "string",
            "description": "Unique identifier of the AI agent that initiated the transaction on behalf of the end user."
          },
          "relatedTransactionId": {
            "maxLength": 20,
            "type": "string",
            "description": "For recurring/rebilling and MIT, represents the reference to the original transaction ID of the initial transaction."
          },
          "productId": {
            "maxLength": 50,
            "type": "string",
            "description": "A free text parameter used to identify the product/service sold. If this parameter is not sent or is sent with an empty value, then it contains the concatenation of all item names up until the parameter maximum length. Risk rules and traffic management rules are usually built based on this parameter value."
          },
          "currencyConversion": {
            "$ref": "#/components/schemas/CurrencyConversion"
          },
          "amount": {
            "minimum": 0,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "transactionType": {
            "$ref": "#/components/schemas/TransactionTypeInput"
          },
          "paymentFlow": {
            "$ref": "#/components/schemas/PaymentFlowSelector"
          },
          "isMoto": {
            "type": "boolean",
            "description": "Indicates whether the transaction was done over email/phone or is a regular transaction. Values: true = Moto transaction | false = no Moto Transaction"
          },
          "isPartialApproval": {
            "type": "boolean",
            "description": "Describes a situation where the deposit was completed and processed with an amount lower than the requested amount due to a consumer's lack of funds within the desired payment method. Partial approval is only supported by Nuvei acquiring. Values: `true` - Allow partial approval | `false` - Not allow partial approval"
          },
          "siteNameOverride": {
            "maxLength": 50,
            "type": "string",
            "description": "The merchant site name. This is useful for merchants operating many websites that are distinguished only by name. Risk rules and traffic management rules are usually built based on this parameter value."
          },
          "zeroAmountReason": {
            "type": "string",
            "description": "For Authentication Zero scenarios, this optional field defines the authentication type.",
            "enum": [
              "recurring",
              "installments",
              "addCard",
              "maintainCard",
              "accountVerification"
            ]
          },
          "amountDetails": {
            "$ref": "#/components/schemas/AmountDetails"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionInput"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Item"
            }
          },
          "dynamicDescriptor": {
            "$ref": "#/components/schemas/DynamicDescriptor"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/SubMerchant"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          },
          "rebill": {
            "$ref": "#/components/schemas/Rebill"
          },
          "deviceDetails": {
            "$ref": "#/components/schemas/DeviceDetails"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BuyerDetails"
          },
          "externalSchemeDetails": {
            "$ref": "#/components/schemas/ExternalSchemeDetails"
          },
          "aftDetails": {
            "$ref": "#/components/schemas/AftDetails"
          },
          "recipientDetails": {
            "$ref": "#/components/schemas/RecipientDetails"
          },
          "mcc": {
            "type": "string",
            "description": "Enables merchants to provide multiple MCC codes, subject to approval by Nuvei's underwriting team."
          },
          "nameVerification": {
            "$ref": "#/components/schemas/NameInquiryInput"
          },
          "feeOriginCountryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "digitalAssetType": {
            "$ref": "#/components/schemas/DigitalAssetType"
          },
          "extendedData": {
            "$ref": "#/components/schemas/PaymentsExtendedData"
          }
        },
        "description": ""
      },
      "PaymentsExtendedData": {
        "title": "PaymentsExtendedData",
        "type": "object",
        "properties": {
          "risk": {
            "$ref": "#/components/schemas/RiskAddendum"
          },
          "installments": {
            "$ref": "#/components/schemas/InstallmentsAddendum"
          },
          "localPayment": {
            "$ref": "#/components/schemas/LocalPaymentAddendum"
          },
          "lodging": {
            "$ref": "#/components/schemas/LodgingAddendum"
          },
          "externalAuthorization": {
            "$ref": "#/components/schemas/ExternalAuthorizationAddendum"
          },
          "airlines": {
            "$ref": "#/components/schemas/PaymentReservationAddendum"
          },
          "marketplace": {
            "$ref": "#/components/schemas/MarketplaceAddendum"
          },
          "level23": {
            "$ref": "#/components/schemas/Level23Addendum"
          }
        }
      },
      "SettlesExtendedData": {
        "title": "SettlesExtendedData",
        "type": "object",
        "properties": {
          "lodging": {
            "$ref": "#/components/schemas/LodgingAddendum"
          },
          "airlines": {
            "$ref": "#/components/schemas/SettleReservationAddendum"
          },
          "level23": {
            "$ref": "#/components/schemas/Level23Addendum"
          }
        }
      },
      "BasePaymentsResponse": {
        "title": "BasePaymentsResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentId": {
            "$ref": "#/components/schemas/IdType"
          },
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId"
          },
          "externalTransactionId": {
            "$ref": "#/components/schemas/ExternalTransactionId"
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "transactionType": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          },
          "authCode": {
            "maxLength": 128,
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "cvv2Code": {
            "maxLength": 1,
            "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."
          },
          "avsCode": {
            "maxLength": 1,
            "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."
          },
          "partialApproval": {
            "$ref": "#/components/schemas/PartialApprovalOutput"
          },
          "providerResponseDetails": {
            "$ref": "#/components/schemas/providerResponseDetails"
          },
          "aftDetails": {
            "$ref": "#/components/schemas/AftDetailsOutput"
          },
          "mcc": {
            "type": "string"
          },
          "nameVerification": {
            "$ref": "#/components/schemas/NameInquiryOutput"
          },
          "schemeDetails": {
            "$ref": "#/components/schemas/SchemeDetails"
          }
        }
      },
      "RedirectUrlPaymentsResponse": {
        "title": "RedirectUrlPaymentsResponse",
        "type": "object",
        "properties": {
          "redirectUrl": {
            "maxLength": 2000,
            "type": "string"
          },
          "actionDetails": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/additionalTransactionInfo"
          }
        }
      },
      "PaymentOptionPayments3DResponse": {
        "title": "PaymentOptionPaymentsResponse",
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOption3DOutput"
          }
        }
      },
      "PaymentOptionPayments3DChallengeResponse": {
        "title": "PaymentOptionPaymentsResponse",
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOption3DChallengeOutput"
          }
        }
      },
      "PaymentOptionFingerprintResponse": {
        "title": "PaymentOptionFingerprintResponse",
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionFingerprintOutput"
          }
        }
      },
      "Payments3DResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasePaymentsResponse"
          },
          {
            "$ref": "#/components/schemas/PaymentOptionPayments3DResponse"
          }
        ]
      },
      "Payments3DChallengeResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasePaymentsResponse"
          },
          {
            "$ref": "#/components/schemas/PaymentOptionPayments3DChallengeResponse"
          }
        ]
      },
      "PaymentsFingerprintResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasePaymentsResponse"
          },
          {
            "$ref": "#/components/schemas/RedirectUrlPaymentsResponse"
          },
          {
            "$ref": "#/components/schemas/PaymentOptionFingerprintResponse"
          }
        ]
      },
      "FingerprintRequest": {
        "title": "FingerprintRequest",
        "required": [
          "fingerprintingIndicator",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "fingerprintingIndicator": {
            "type": "string",
            "description": "Values: Y = Merchant used fingerprinting | N = Merchant did not use fingerprinting | U = Merchant did not use fingerprinting due to technical reasons.",
            "enum": [
              "Y",
              "N",
              "U"
            ]
          }
        },
        "description": ""
      },
      "ChallengeRequest": {
        "title": "ChallengeRequest",
        "required": [
          "cRes",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "cRes": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string",
            "description": "The message that holds the challenge response."
          }
        },
        "description": ""
      },
      "SettleRequest": {
        "title": "SettleRequest",
        "required": [
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "productId": {
            "maxLength": 50,
            "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."
          },
          "siteNameOverride": {
            "maxLength": 255,
            "type": "string"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          },
          "totalSettleCount": {
            "minimum": 1,
            "type": "integer",
            "description": "An optional parameter that represents the total Settle transactions to be executed against the Auth transaction.",
            "format": "int32",
            "example": 2
          },
          "extendedData": {
            "$ref": "#/components/schemas/SettlesExtendedData"
          }
        }
      },
      "SettleResponse": {
        "title": "SettleResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "settleId": {
            "$ref": "#/components/schemas/IdType"
          },
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId"
          },
          "externalTransactionId": {
            "$ref": "#/components/schemas/ExternalTransactionId"
          },
          "agentId": {
            "type": "string",
            "description": "Unique identifier of the AI agent that initiated the transaction on behalf of the end user."
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          },
          "authCode": {
            "maxLength": 128,
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "providerResponseDetails": {
            "$ref": "#/components/schemas/providerResponseDetails"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/additionalTransactionInfo"
          }
        }
      },
      "RefundRequest": {
        "title": "RefundRequest",
        "required": [
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "productId": {
            "maxLength": 50,
            "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."
          },
          "siteNameOverride": {
            "maxLength": 255,
            "type": "string"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          }
        }
      },
      "RefundResponse": {
        "title": "RefundResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "refundId": {
            "$ref": "#/components/schemas/IdType"
          },
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId"
          },
          "externalTransactionId": {
            "$ref": "#/components/schemas/ExternalTransactionId"
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "authCode": {
            "maxLength": 128,
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "providerResponseDetails": {
            "$ref": "#/components/schemas/providerResponseDetails"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/additionalTransactionInfo"
          },
          "schemeDetails": {
            "$ref": "#/components/schemas/SchemeDetails"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "UnreferencedRefundRequest": {
        "title": "UnreferencedRefundRequest",
        "required": [
          "amount",
          "currency",
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "currencyConversion": {
            "$ref": "#/components/schemas/CurrencyConversion"
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "productId": {
            "maxLength": 50,
            "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."
          },
          "siteNameOverride": {
            "maxLength": 255,
            "type": "string"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/SubMerchant"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionUnreferencedRefundInput"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BuyerDetails"
          },
          "feeOriginCountryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "digitalAssetType": {
            "$ref": "#/components/schemas/DigitalAssetType"
          }
        }
      },
      "VoidRequest": {
        "title": "voidRequest",
        "required": [
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "productId": {
            "maxLength": 50,
            "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."
          },
          "siteNameOverride": {
            "maxLength": 255,
            "type": "string"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          }
        }
      },
      "VoidOrRefundRequest": {
        "title": "voidOrRefundRequest",
        "allOf": [
          {
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/VoidRequest"
          }
        ]
      },
      "VoidResponse": {
        "title": "VoidResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "voidId": {
            "$ref": "#/components/schemas/IdType"
          },
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId"
          },
          "externalTransactionId": {
            "$ref": "#/components/schemas/ExternalTransactionId"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          },
          "authCode": {
            "maxLength": 128,
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "providerResponseDetails": {
            "$ref": "#/components/schemas/providerResponseDetails"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/additionalTransactionInfo"
          },
          "schemeDetails": {
            "$ref": "#/components/schemas/SchemeDetails"
          }
        }
      },
      "VoidOrRefundResponse": {
        "title": "VoidOrRefundResponse",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "refundId": {
                "$ref": "#/components/schemas/IdType"
              }
            }
          },
          {
            "$ref": "#/components/schemas/VoidResponse"
          }
        ]
      },
      "CVV": {
        "title": "CVV",
        "maxLength": 4,
        "minLength": 3,
        "pattern": "^([0-9]{3}|[0-9]{4})$",
        "type": "string",
        "description": "The CVV/CVC security code.",
        "example": "123"
      },
      "AmountDetails": {
        "title": "amountDetails",
        "type": "object",
        "properties": {
          "totalDiscount": {
            "type": "number",
            "default": 0
          },
          "totalHandling": {
            "type": "number",
            "default": 0
          },
          "totalShipping": {
            "type": "number",
            "default": 0
          },
          "totalTax": {
            "type": "number",
            "default": 0
          }
        },
        "description": "The items and amountDetails prices should be summed up in the amount parameter and sent separately. All prices must be in the same currency."
      },
      "ApiResultOutput": {
        "title": "apiResultOutput",
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "authorizedOnly",
              "declined",
              "error",
              "pending",
              "redirect",
              "challenge",
              "fingerprint",
              "authenticated",
              "authenticationNotSupported",
              "actionRequired"
            ]
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "CardInput": {
        "title": "cardInput",
        "required": [
          "cardNumber",
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The cardholder name."
          },
          "cardNumber": {
            "maxLength": 20,
            "minLength": 6,
            "type": "string",
            "description": "The full card number."
          },
          "expirationMonth": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^(0[1-9]|1[0-2])$",
            "type": "string",
            "description": "The card expiration month.",
            "example": "12"
          },
          "expirationYear": {
            "maxLength": 4,
            "minLength": 2,
            "pattern": "^(\\d{4}|\\d{2})$",
            "type": "string",
            "description": "The card expiration year.",
            "example": "2023"
          },
          "cvv": {
            "$ref": "#/components/schemas/CVV"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "externalAuthenticationDetails": {
            "$ref": "#/components/schemas/ExternalMpi"
          },
          "threeD": {
            "$ref": "#/components/schemas/ThreeDInput"
          },
          "selectedBrand": {
            "type": "string"
          }
        }
      },
      "ApmInput": {
        "title": "ApmDetails",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "example": "ACH"
          },
          "data": {
            "$ref": "#/components/schemas/MaskedKeyValuePair"
          },
          "usageIntent": {
            "$ref": "#/components/schemas/UsageIntent"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          }
        }
      },
      "ApmOutput": {
        "title": "ApmOutput",
        "allOf": [
          {
            "$ref": "#/components/schemas/ApmInput"
          },
          {
            "type": "object",
            "properties": {
              "paymentTokenId": {
                "$ref": "#/components/schemas/TokenId"
              }
            }
          }
        ]
      },
      "CardInputUnreferencedRefund": {
        "title": "cardInputUnreferencedRefund",
        "required": [
          "cardNumber",
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The cardholder name."
          },
          "cardNumber": {
            "maxLength": 20,
            "minLength": 6,
            "type": "string",
            "description": "The full card number."
          },
          "expirationMonth": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^(0[1-9]|1[0-2])$",
            "type": "string",
            "description": "The card expiration month.",
            "example": "12"
          },
          "expirationYear": {
            "maxLength": 4,
            "minLength": 2,
            "pattern": "^(\\d{4}|\\d{2})$",
            "type": "string",
            "example": "2023"
          },
          "cvv": {
            "$ref": "#/components/schemas/CVV"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "selectedBrand": {
            "type": "string"
          }
        }
      },
      "BaseCardOutput": {
        "title": "BaseCardOutput",
        "type": "object",
        "properties": {
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The cardholder name."
          },
          "maskedCardNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The masked credit card number."
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "last4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string",
            "description": "The card expiration year."
          },
          "acquirerId": {
            "maxLength": 2,
            "type": "string",
            "description": "The ID of the acquirer that processed the transaction."
          },
          "cardType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "secondaryBrand": {
            "type": "string"
          },
          "paymentAccountReference": {
            "maxLength": 29,
            "type": "string"
          },
          "processedBrand": {
            "type": "string"
          },
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          }
        }
      },
      "CardPaymentThreeDOutput": {
        "title": "CardPaymentThreeDOutput",
        "type": "object",
        "properties": {
          "threeD": {
            "$ref": "#/components/schemas/ThreeDOutput"
          }
        }
      },
      "CardPaymentThreeDChallengeOutput": {
        "title": "CardPaymentThreeDChallengeOutput",
        "type": "object",
        "properties": {
          "threeD": {
            "$ref": "#/components/schemas/ThreeDChallengeOutput"
          }
        }
      },
      "CardFingerprintThreeDOutput": {
        "title": "CardFingerprintThreeDOutput",
        "type": "object",
        "properties": {
          "threeD": {
            "$ref": "#/components/schemas/ThreeDFingerprintOutput"
          }
        }
      },
      "CardOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCardOutput"
          },
          {
            "$ref": "#/components/schemas/CardPaymentThreeDOutput"
          }
        ]
      },
      "CardChallengeOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCardOutput"
          },
          {
            "$ref": "#/components/schemas/CardPaymentThreeDChallengeOutput"
          }
        ]
      },
      "CardFingerprintOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseCardOutput"
          },
          {
            "$ref": "#/components/schemas/CardFingerprintThreeDOutput"
          }
        ]
      },
      "Delivery": {
        "title": "delivery",
        "type": "object",
        "properties": {
          "deliveryEmail": {
            "type": "string"
          },
          "timeFrame": {
            "type": "string",
            "description": "Indicates the merchandise delivery time frame. Values: 01 = Electronic Delivery | 02 = Same day shipping | 03 = Overnight shipping | 04 = Two-day or more shipping",
            "enum": [
              "01",
              "02",
              "03",
              "04"
            ]
          }
        }
      },
      "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."
          }
        }
      },
      "EntityId": {
        "title": "entityId",
        "type": "string",
        "description": "Processing `entityId` provided by Nuvei.",
        "format": "uuid"
      },
      "IdType": {
        "title": "idType",
        "type": "string",
        "example": "2f00eba7-66ad-4d8b-8d54-b8c9183e664f"
      },
      "Item": {
        "title": "item",
        "required": [
          "name",
          "price",
          "quantity",
          "type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "quantity": {
            "type": "integer"
          },
          "type": {
            "type": "string",
            "description": "Item classification",
            "enum": [
              "Discount",
              "Physical",
              "ShippingFee",
              "Digital",
              "GiftCard",
              "StoreCredit",
              "Surcharge",
              "SalesTax"
            ]
          },
          "groupId": {
            "type": "string",
            "description": "Product category grouping"
          },
          "discountDetails": {
            "$ref": "#/components/schemas/DiscountDetails"
          },
          "taxDetails": {
            "$ref": "#/components/schemas/TaxDetails"
          },
          "shippingDetails": {
            "$ref": "#/components/schemas/ShippingDetails"
          },
          "urlsDetails": {
            "$ref": "#/components/schemas/UrlsDetails"
          }
        },
        "description": "An array describing the items in the purchase."
      },
      "DiscountDetails": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Absolute discount amount"
          },
          "rate": {
            "type": "number",
            "description": "Discount percentage"
          }
        },
        "description": "Discount details"
      },
      "TaxDetails": {
        "type": "object",
        "properties": {
          "tax": {
            "type": "number",
            "description": "VAT / tax amount"
          },
          "taxRate": {
            "type": "number",
            "description": "VAT / tax rate"
          }
        },
        "description": "Tax details"
      },
      "ShippingDetails": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "description": "Shipping net price"
          },
          "tax": {
            "type": "number",
            "description": "Shipping tax amount"
          },
          "taxRate": {
            "type": "number",
            "description": "Shipping tax rate"
          }
        },
        "description": "Shipping price and tax"
      },
      "UrlsDetails": {
        "type": "object",
        "properties": {
          "imageUrl": {
            "type": "string",
            "description": "Product image URL",
            "format": "uri"
          },
          "productUrl": {
            "type": "string",
            "format": "uri"
          }
        },
        "description": "Product URLs"
      },
      "KeyValuePair": {
        "title": "keyValuePair",
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "accountNumber": "11345739548759",
          "routingNumber": "847937857"
        },
        "default": {
          "type": "string"
        }
      },
      "MerchantReference": {
        "title": "merchantReference",
        "maxLength": 50,
        "type": "string",
        "description": "Merchant Reference for a business entity (token, subscription, etc.)",
        "example": "12391284AF87C7D2"
      },
      "PartialApprovalOutput": {
        "title": "partialApprovalOutput",
        "required": [
          "requestedAmount",
          "requestedCurrency"
        ],
        "type": "object",
        "properties": {
          "requestedAmount": {
            "type": "number"
          },
          "requestedCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          }
        },
        "description": "Partial approval is when the deposit completes with a processed amount lower than the requested amount due to a lack of sufficient funds in the consumer payment method."
      },
      "BaseTemporaryPaymentToken": {
        "title": "BaseTemporaryPaymentToken",
        "required": [
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          }
        }
      },
      "TemporaryPaymentTokenInputUnreferencedRefund": {
        "title": "TemporaryPaymentTokenUnreferencedRefund",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemporaryPaymentToken"
          },
          {
            "type": "object",
            "properties": {
              "merchantReference": {
                "$ref": "#/components/schemas/MerchantReference"
              }
            }
          }
        ]
      },
      "TemporaryPaymentTokenInput": {
        "title": "TemporaryPaymentToken",
        "allOf": [
          {
            "$ref": "#/components/schemas/TemporaryPaymentTokenInputUnreferencedRefund"
          },
          {
            "type": "object",
            "properties": {
              "threeD": {
                "$ref": "#/components/schemas/ThreeDInput"
              }
            }
          }
        ]
      },
      "PaymentOptionInput": {
        "title": "paymentOptionFullCardInput",
        "type": "object",
        "properties": {
          "allowFieldsRecovery": {
            "type": "boolean",
            "description": "This parameter controls the functionality for certain APMs to collect values for mandatory parameters that were not provided in the request. If set to `true`, REST API returns a redirect URL to which the End User should be redirected to fill in missing details. If set to `false`, a validation error is returned. The default value is `false`",
            "default": false
          },
          "allowFieldsModification": {
            "type": "boolean",
            "description": "This parameter controls the functionality for certain APMs to collect values for mandatory parameters that were not provided in the request. If set to `true`, the End User will have the ability to modify the values already provided in the request. The default value is `false`. This parameter is relevant only if allowFieldsRecovery is set to `true`",
            "default": false
          },
          "card": {
            "$ref": "#/components/schemas/CardInput"
          },
          "paymentToken": {
            "$ref": "#/components/schemas/TokenInput"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmInput"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentTokenInput"
          },
          "store": {
            "$ref": "#/components/schemas/Store"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkToken"
          }
        },
        "description": "Represents the details of the payment method."
      },
      "BasePaymentOptionOutput": {
        "title": "BasePaymentOptionOutput",
        "type": "object",
        "properties": {
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmOutput"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenOutputFingerprint"
          }
        }
      },
      "PaymentOptionCardNetworkTokenOutput": {
        "title": "PaymentOptionCardNetworkTokenOutput",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardOutput"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenOutput"
          }
        }
      },
      "PaymentOptionCardNetworkTokenChallengeOutput": {
        "title": "PaymentOptionCardNetworkTokenChallengeOutput",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardChallengeOutput"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenChallengeOutput"
          }
        }
      },
      "PaymentOptionCardFingerprintOutput": {
        "title": "PaymentOptionCardOutput",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardFingerprintOutput"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/BaseTemporaryPaymentToken"
          }
        }
      },
      "PaymentOption3DOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentOptionCardNetworkTokenOutput"
          }
        ]
      },
      "PaymentOption3DChallengeOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentOptionCardNetworkTokenChallengeOutput"
          }
        ]
      },
      "PaymentOptionFingerprintOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentOptionCardFingerprintOutput"
          },
          {
            "$ref": "#/components/schemas/BasePaymentOptionOutput"
          }
        ]
      },
      "PaymentOptionUnreferencedRefundInput": {
        "title": "paymentOptionFullCardInputUnreferencedRefund",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardInputUnreferencedRefund"
          },
          "paymentToken": {
            "$ref": "#/components/schemas/TokenInputUnreferencedRefund"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentTokenInputUnreferencedRefund"
          },
          "store": {
            "$ref": "#/components/schemas/StoreUnreferencedRefund"
          }
        }
      },
      "PreOrder": {
        "title": "preOrder",
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "purchaseIndicator": {
            "type": "string",
            "description": "Indicates whether the cardholder is placing an order for merchandise with a future availability or release date. Values: 01 = Merchandise available | 02 = Future availability",
            "enum": [
              "01",
              "02"
            ]
          }
        }
      },
      "Rebill": {
        "title": "rebill",
        "type": "object",
        "properties": {
          "expiry": {
            "type": "string",
            "description": "Recurring Expiry in the format: YYYYMMDD. REQUIRED if step = init. We recommend setting expiry to a value of no more than 5 years from the date of the initial transaction processing date",
            "format": "date"
          },
          "frequency": {
            "type": "integer",
            "description": " Recurring Frequency in days. REQUIRED if step = init"
          },
          "step": {
            "type": "string",
            "description": "Indicates the type of transaction performed as part of a rebilling plan.",
            "enum": [
              "init",
              "recurring",
              "MIT",
              "noShow",
              "delayedCharges"
            ]
          }
        }
      },
      "ResultError": {
        "title": "resultError",
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 11,
            "type": "string",
            "example": "7000.1000"
          },
          "reason": {
            "maxLength": 400,
            "type": "string",
            "example": "Internal Processing Error"
          },
          "reference": {
            "maxLength": 400,
            "type": "string",
            "description": "Internal reference for troubleshooting",
            "example": "110.1290"
          }
        }
      },
      "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)."
          },
          "name": {
            "maxLength": 20,
            "type": "string",
            "description": "The payment facilitator's sub-merchant's name."
          },
          "address": {
            "type": "string",
            "description": "The payment facilitator's sub-merchant's address."
          },
          "zip": {
            "type": "string",
            "description": "The payment facilitator's sub-merchant's zip code."
          },
          "phone": {
            "type": "string",
            "description": "The payment facilitator's sub-merchant's phone number."
          },
          "state": {
            "type": "string",
            "description": "The payment facilitator's sub-merchant's state."
          },
          "url": {
            "type": "string",
            "description": "The payment facilitator's sub-merchant's url."
          }
        }
      },
      "TokenId": {
        "title": "tokenId",
        "type": "string",
        "description": "Payment Token ID"
      },
      "TokenInputUnreferencedRefund": {
        "title": "tokenInputUnreferencedRefund",
        "required": [
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "additionalData": {
            "$ref": "#/components/schemas/MaskedKeyValuePair"
          }
        }
      },
      "TokenInput": {
        "title": "tokenInput",
        "allOf": [
          {
            "$ref": "#/components/schemas/TokenInputUnreferencedRefund"
          },
          {
            "type": "object",
            "properties": {
              "usageIntent": {
                "maxLength": 100,
                "minLength": 1,
                "type": "string"
              },
              "threeD": {
                "$ref": "#/components/schemas/ThreeDInput"
              }
            }
          }
        ]
      },
      "ExternalTransactionId": {
        "title": "ExternalTransactionId",
        "maxLength": 50,
        "type": "string",
        "description": "The transaction ID of the transaction in the event that an external service is used."
      },
      "TransactionId": {
        "title": "transactionId",
        "maxLength": 20,
        "type": "string",
        "description": "Nuvei Digital Payments Gateway Transaction ID"
      },
      "TransactionType": {
        "title": "transactionType",
        "type": "string",
        "description": "Determines the transaction type that is sent to the Gateway, when it comes to performing the fiscal transaction. Default is Sale.",
        "enum": [
          "Auth",
          "Sale",
          "PreAuth",
          "Settle",
          "Void",
          "Refund",
          "InitAuth3D",
          "Auth3D",
          "Sale3D",
          "Payout"
        ]
      },
      "TransactionTypeInput": {
        "title": "transactionTypeInput",
        "type": "string",
        "description": "Determines the transaction type that is sent to the Gateway, when it comes to performing the fiscal transaction. Default is Sale.",
        "enum": [
          "Auth",
          "Sale",
          "PreAuth"
        ]
      },
      "Store": {
        "title": "store",
        "type": "string",
        "enum": [
          "none",
          "initial",
          "subsequent",
          "tokenOnly",
          "buyerToken"
        ]
      },
      "StoreUnreferencedRefund": {
        "title": "storeUnreferencedRefund",
        "type": "string",
        "enum": [
          "none",
          "tokenOnly",
          "buyerToken"
        ]
      },
      "ExternalSchemeDetails": {
        "title": "ExternalSchemeDetails",
        "required": [
          "brand",
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "transactionId": {
            "maxLength": 50,
            "type": "string"
          },
          "transactionLinkId": {
            "description": "The Mastercard Transaction Link Identifier (TLID), a unique identifier provided by Mastercard and used to link an original transaction with related follow-up transactions, such as Merchant-Initiated Transactions (MITs). This parameter should be provided together with `externalSchemeDetails.transactionId` when referencing an original transaction processed outside of Nuvei.",
            "type": "string"
          },
          "brand": {
            "type": "string"
          }
        }
      },
      "UrlDetails": {
        "title": "urlDetails",
        "type": "object",
        "properties": {
          "webhookUrl": {
            "type": "string",
            "description": "The URL to which notifications for outcome of the financial transactions is sent."
          },
          "successUrl": {
            "type": "string",
            "description": "The URL to which the end user is redirected for a successful transaction with an APM."
          },
          "failureUrl": {
            "type": "string",
            "description": "The URL to which the end user is redirected for an unsuccessful transaction with an APM."
          },
          "pendingUrl": {
            "type": "string",
            "description": "The URL to which the end user is redirected for a pending transaction with an APM."
          },
          "returnToAppUrl": {
            "type": "string",
            "description": "The URL to which the end user is redirected in case of a successful transaction with an APM that shuold open in an external browser."
          }
        },
        "description": "With this class, a merchant can dynamically provide possible URLs to which the end user is redirected after a payment is made, as well as a dynamic URL for [DMNs](https://docs.nuvei.com/?p=493091)."
      },
      "UserAccount": {
        "title": "userAccount",
        "type": "object",
        "properties": {
          "addCardAttempts24H": {
            "type": "integer",
            "description": "Number of Add Card attempts in the last 24 hours."
          },
          "addressFirstUseDate": {
            "type": "string",
            "description": "Date when the shipping address used for this transaction was first used with the 3DS Requestor in the format: YYYYMMDD.",
            "format": "date"
          },
          "addressFirstUseIndicator": {
            "type": "string",
            "description": "Indicates when the shipping address used for this transaction was first used with the 3DS Requestor. Values: 01 = This transaction | 02 = Less than 30 days | 03 = 30-60 days | 04 = More than 60 days",
            "enum": [
              "01",
              "02",
              "03",
              "04"
            ]
          },
          "age": {
            "type": "string",
            "description": "Length of time that the cardholder has had the account with the 3DS Requestor. Values: 01 = No account (payment as a guest) | 02 = Created during this transaction | 03 = Less than 30 days | 04 = 30-60 days | 05 = More than 60 days",
            "enum": [
              "01",
              "02",
              "03",
              "04",
              "05"
            ]
          },
          "lastChangeDate": {
            "type": "string",
            "description": "Date (in YYYYMMDD format) that the cardholder's account with the 3DS Requestor was last changed, including Billing or Shipping address, new payment account, or new user(s) added.",
            "format": "date"
          },
          "lastChangeIndicator": {
            "type": "string",
            "description": "Length of time since the cardholder's account information with the 3DS Requestor was last changed, including billing or shipping address, new payment account, or new user(s) added. Values: 01 = Changed during this transaction | 02 = Less than 30 days | 03 = 30-60 days | 04 = More than 60 days",
            "enum": [
              "01",
              "02",
              "03",
              "04"
            ]
          },
          "cardSavedDate": {
            "type": "string",
            "description": "The date on which the payment account was enrolled in the cardholder's account with the 3DS Requestor.",
            "format": "date"
          },
          "cardSavedIndicator": {
            "type": "string",
            "description": "Indicates the length of time that the payment account was enrolled in the cardholder's account with the 3DS Requestor. Values: 01 = If merchant does not save the card on their end, the deposit was processed without creating an account | 02 = If card is saved as part of this transaction flow | 03 = Card was saved less than 30 days ago | 04 = Card was saved between 30 and 60 days ago, endpoints included | 05 = Card was saved more than 60 days ago",
            "enum": [
              "01",
              "02",
              "03",
              "04",
              "05"
            ]
          },
          "nameIndicator": {
            "type": "string",
            "description": "Indicates if the `cardholderName` on the account is identical to the shipping name used for this transaction. Values: 01 = Account Name identical to Shipping Name | 02 = Account Name different than Shipping Name",
            "enum": [
              "01",
              "02"
            ]
          },
          "passwordChangeDate": {
            "type": "string",
            "description": "Date that cardholder's account with the 3DS Requestor had a password change or account reset in format: YYYYMMDD.",
            "format": "date"
          },
          "purchasesCount6M": {
            "type": "integer",
            "description": "Number of purchases with this cardholder account during the previous six months."
          },
          "registrationDate": {
            "type": "string",
            "description": "Date that the cardholder opened the account with the 3DS Requestor in the format: YYYYMMDD.",
            "format": "date"
          },
          "resetIndicator": {
            "type": "string",
            "description": "Indicates the length of time since the cardholder's account with the 3DS Requestor had a password change or account reset. Values: 01 = No change | 02 = Changed during this transaction | 03 = Less than 30 days | 04 = 30-60 days | 05 = More than 60 days",
            "enum": [
              "01",
              "02",
              "03",
              "04",
              "05"
            ]
          },
          "suspiciousActivityIndicator": {
            "type": "string",
            "description": "Indicates whether the 3DS Requestor has experienced suspicious activity (including previous fraud) on the cardholder account. Values: 01 = No suspicious activity has been observed | 02 = Suspicious activity has been observed",
            "enum": [
              "01",
              "02"
            ]
          },
          "transactionsCount1Y": {
            "type": "integer",
            "description": "Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year."
          },
          "transactionsCount24H": {
            "type": "integer",
            "description": "Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24 hours."
          }
        }
      },
      "CurrencyConversion": {
        "required": [
          "originalAmount",
          "originalCurrency",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "MCP"
            ]
          },
          "originalAmount": {
            "type": "number",
            "description": "The original amount of the transaction in the currency that the merchant requested."
          },
          "originalCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "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."
          },
          "rateType": {
            "type": "string",
            "enum": [
              "payment",
              "payout",
              "masterCardPayout"
            ]
          }
        }
      },
      "NetworkToken": {
        "title": "NetworkToken",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "token": {
            "type": "string",
            "description": "This encrypted token (REQUIRED for Apple Pay, Google Pay, Paze and Click2Pay) represents a customer payment method generated by the external token provider"
          },
          "tokenNumber": {
            "maxLength": 20,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string"
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string"
          },
          "cryptogram": {
            "maxLength": 100,
            "type": "string"
          },
          "tokenAssuranceLevel": {
            "type": "string"
          },
          "tokenRequestorId": {
            "type": "string"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "externalAuthenticationDetails": {
            "$ref": "#/components/schemas/ExternalMpi"
          },
          "threeD": {
            "$ref": "#/components/schemas/ThreeDInput"
          },
          "providerData": {
            "$ref": "#/components/schemas/TokenData"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "panLast4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "eciIndicator": {
            "maxLength": 2,
            "type": "string"
          },
          "deviceManufacturerIdentifier": {
            "type": "string"
          }
        }
      },
      "NetworkTokenOutputFingerprint": {
        "title": "NetworkTokenOutputFingerprint",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "eciIndicator": {
            "maxLength": 100,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string",
            "description": "The card expiration year."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "maskedCardNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The masked credit card number."
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "last4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "acquirerId": {
            "maxLength": 2,
            "type": "string",
            "description": "The ID of the acquirer that processed the transaction."
          },
          "cardType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "threeD": {
            "$ref": "#/components/schemas/ThreeDFingerprintOutput"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          }
        }
      },
      "NetworkTokenOutput": {
        "title": "NetworkTokenOutput",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "eciIndicator": {
            "maxLength": 100,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string",
            "description": "The card expiration year."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "maskedCardNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The masked credit card number."
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "last4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "acquirerId": {
            "maxLength": 2,
            "type": "string",
            "description": "The ID of the acquirer that processed the transaction."
          },
          "cardType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "threeD": {
            "$ref": "#/components/schemas/ThreeDOutput"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          }
        }
      },
      "NetworkTokenChallengeOutput": {
        "title": "NetworkTokenOutput",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "eciIndicator": {
            "maxLength": 100,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string",
            "description": "The card expiration year."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "maskedCardNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The masked credit card number."
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "last4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "acquirerId": {
            "maxLength": 2,
            "type": "string",
            "description": "The ID of the acquirer that processed the transaction."
          },
          "cardType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          },
          "threeD": {
            "$ref": "#/components/schemas/ThreeDChallengeOutput"
          }
        }
      },
      "NetworkTokenPayoutOutput": {
        "title": "NetworkTokenPayoutOutput",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "eciIndicator": {
            "maxLength": 100,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string",
            "description": "The card expiration month."
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string",
            "description": "The card expiration year."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "maskedCardNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "The masked credit card number."
          },
          "bin": {
            "maxLength": 8,
            "type": "string",
            "description": "The first six digits from the credit card number for identifying the processing bank. The rest of the number is not displayed."
          },
          "last4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "acquirerId": {
            "maxLength": 2,
            "type": "string",
            "description": "The ID of the acquirer that processed the transaction."
          },
          "cardType": {
            "maxLength": 20,
            "type": "string",
            "description": "The type of card used in the transaction. Values: Credit, Debit"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "paymentTokenId": {
            "$ref": "#/components/schemas/TokenId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "issuerBankName": {
            "type": "string"
          },
          "issuerCountry": {
            "type": "string"
          }
        }
      },
      "TokenProvider": {
        "title": "TokenProvider",
        "type": "string",
        "description": "The name of the external token provider Possible values: [ApplePay, GooglePay]",
        "enum": [
          "ApplePay",
          "GooglePay",
          "Click2Pay",
          "Paze"
        ]
      },
      "GiftCard": {
        "title": "GiftCard",
        "type": "object",
        "properties": {
          "count": {
            "minimum": 1,
            "type": "integer",
            "description": "For a prepaid or gift card purchase, the total number of individual prepaid or gift cards/codes purchased."
          },
          "totalAmount": {
            "minimum": 0,
            "type": "number",
            "description": "For a prepaid or gift card purchase, the total purchase amount of prepaid or gift card(s) in major units (for example, USD 123.45 is 123)."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "For a prepaid or gift card purchase, the [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes) of the gift card."
          }
        }
      },
      "PlatformType": {
        "title": "PlatformType",
        "type": "string",
        "description": "The device channel. Values: 01 = SDK | 02 = Browser",
        "default": "02",
        "enum": [
          "01",
          "02"
        ]
      },
      "ChallengeWindowSize": {
        "type": "string",
        "description": "The dimensions of the challenge window. Values: 01 = 250 x 400 | 02 = 390 x 400 | 03 = 500 x 600 | 04 = 600 x 400 | 05 = Full screen",
        "enum": [
          "01",
          "02",
          "03",
          "04",
          "05"
        ]
      },
      "WhiteListStatus": {
        "title": "WhiteListStatus",
        "type": "string",
        "description": "Indicates if this consumer defined this merchant as whitelist or not. If the consumer defined the merchant, then this is the reason the challenge did not happen. Values: Y = 3DS Requestor is whitelisted by cardholder | N = 3DS Requestor is not whitelisted by cardholder | E = Not eligible as determined by issuer | P = Pending confirmation by cardholder | R = Cardholder rejected | U = Whitelist status unknown, unavailable, or does not apply",
        "enum": [
          "Y",
          "N",
          "E",
          "P",
          "R",
          "U"
        ]
      },
      "AuthenticationResult": {
        "type": "string",
        "description": "Indicates whether a transaction qualifies as an authenticated transaction or account verification. Note: The Final CRes message can contain only a value of Y or N. Values: Y = Authentication Verification Successful | N = Not Authenticated /Account Not Verified; Transaction denied | U = Authentication/ Account Verification Could Not Be Performed; Technical or other problem, as indicated in ARes or RReq | A = Attempts Processing Performed; Not Authenticated/Verified, but a proof of attempted authentication/verification is provided | C = Challenge Required; Additional authentication is required using the CReq/CRes | D = Challenge Required; Decoupled Authentication confirmed | R = Authentication/ Account Verification Rejected; Issuer is rejecting | I = Informational only (issuer approved SCA exemption)",
        "enum": [
          "Y",
          "N",
          "U",
          "A",
          "C",
          "D",
          "R",
          "I"
        ]
      },
      "AuthenticationType": {
        "maxLength": 2,
        "minLength": 2,
        "type": "string",
        "description": "The type of authentication performed during the 3D Secure 2.0 challenge. If the merchant wants to react differently for each authentication type, then they can, per the value returned. Values: 01 = Static | 02 = Dynamic | 03 = OOB | 04 = Decoupled | 05-79 = Reserved for EMVCo future use (values invalid until defined by EMVCo) | 80-99 = Reserved for DS use"
      },
      "AcsChallengeMandate": {
        "title": "AcsChallengeMandate",
        "type": "string",
        "description": "The 3D Secure 2.0 challenge indication. Values: N = not required | Y = required",
        "enum": [
          "Y",
          "N"
        ]
      },
      "ReorderItemsIndicator": {
        "type": "string",
        "description": "Indicates whether the cardholder is reordering previously purchased merchandise. Values: 01 = First time ordered | 02 = Reordered",
        "enum": [
          "01",
          "02"
        ]
      },
      "ShippingIndicator": {
        "type": "string",
        "description": "Indicates the selected shipping method for the transaction. Values: 01 = Ship to cardholder billing address | 02 = Ship to another verified address on file with merchant | 03 = Ship to address that is different than the cardholders billing address | 04 = Ship to Store/Pickup at local store (store address shall be populated in shipping address parameters) | 05 = Digital goods (includes online services, electronic gift cards and redemption codes) | 06 = Travel and event tickets, not shipped | 07 = Other (for example: gaming, digital services not shipped, e-media subscriptions, etc.)",
        "enum": [
          "01",
          "02",
          "03",
          "04",
          "05",
          "06",
          "07"
        ]
      },
      "ThreeDInput": {
        "title": "ThreeD Input Object",
        "required": [
          "challengeNotificationUrl",
          "challengeWindowSize",
          "fingerprintNotificationUrl"
        ],
        "type": "object",
        "properties": {
          "continueWithoutLiabilityShift": {
            "type": "boolean",
            "description": "If the continueWithoutLiabilityShift parameter is provided, the behavior is: \\\n`true`: The transaction will be processed as either non-3D or 3D, depending on other conditions. \\\n`false`: The transaction will be processed strictly as AUTH3D.\n",
            "default": true
          },
          "challenge": {
            "$ref": "#/components/schemas/Challenge"
          },
          "userAccount": {
            "$ref": "#/components/schemas/UserAccount"
          },
          "giftCard": {
            "$ref": "#/components/schemas/GiftCard"
          },
          "delivery": {
            "$ref": "#/components/schemas/Delivery"
          },
          "preOrder": {
            "$ref": "#/components/schemas/PreOrder"
          },
          "reorderItemsIndicator": {
            "$ref": "#/components/schemas/ReorderItemsIndicator"
          },
          "shippingIndicator": {
            "$ref": "#/components/schemas/ShippingIndicator"
          },
          "merchantUrl": {
            "type": "string",
            "description": "The URL of the merchant's fully qualified website."
          },
          "fingerprintNotificationUrl": {
            "type": "string",
            "description": "URL to which the issuer should send the fingerprinting notification response"
          },
          "challengeNotificationUrl": {
            "type": "string",
            "description": "URL to which the issuer should send a notification after the 3D-Secure challenge step"
          },
          "challengeWindowSize": {
            "$ref": "#/components/schemas/ChallengeWindowSize"
          },
          "platformType": {
            "$ref": "#/components/schemas/PlatformType"
          },
          "externalRiskScore": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "If you wish to request an exemption prior to the Authentication request when Nuvei is your 3DS MPI, you should provide the risk assessment that you have calculated for the transaction. Alternatively, you can use this parameter during an Authorization request without any prior authentication when the transaction amount allows it. Please contact our Risk Team to set the risk score below which an exemption can be given. Valid values are 0-100 where 0 is lowest risk and 100 is the highest risk. \\\nTo activate sale3D and enable liability shift, include continueWithoutLiabilityShift=true in your request. \\\nFor `low risk scores`, this may result in non-3D processing. \\\nFor `high risk scores`, this may result in 3DS authentication \\\nNOTE: Nuvei's Fraud Engine considers this value if coordinated in advance with our Risk Team\n"
          }
        }
      },
      "BaseThreeDOutput": {
        "title": "Base ThreeD Output Object",
        "type": "object",
        "properties": {
          "version": {
            "maxLength": 10,
            "type": "string",
            "description": "The full version of the 3DS protocol for the transaction.",
            "example": "2.1.0"
          }
        }
      },
      "BaseFingerprintOutput": {
        "title": "Base ThreeD Fingerprint Output Object",
        "type": "object",
        "properties": {
          "fingerprintUrl": {
            "type": "string",
            "description": "The URL to which to post the fingerprintPayload to perform device fingerprinting."
          },
          "fingerprintPayload": {
            "type": "string",
            "description": "The payload to be posted to the fingerprintUrl to perform the device fingerprinting."
          },
          "dsTransId": {
            "type": "string",
            "description": "The transaction ID of the Directory Server (part of the fingerprintPayload).",
            "format": "uuid"
          }
        }
      },
      "ThreeDFingerprintOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseThreeDOutput"
          },
          {
            "$ref": "#/components/schemas/BaseFingerprintOutput"
          }
        ]
      },
      "ThreeDPaymentChallengeOutput": {
        "title": "ThreeD Output Object",
        "type": "object",
        "properties": {
          "dsTransId": {
            "type": "string",
            "description": "The transaction ID of the Directory Server (part of the fingerprintPayload).",
            "format": "uuid"
          },
          "eci": {
            "maxLength": 2,
            "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=492931).",
            "example": "2"
          },
          "cavv": {
            "maxLength": 40,
            "type": "string",
            "description": "Cardholder Authentication Verification Value - cryptographically secure hash of various pieces of information related to the transaction that can be used as a proof for the 3DS authentication."
          },
          "whiteListStatus": {
            "$ref": "#/components/schemas/WhiteListStatus"
          },
          "acsChallengeMandate": {
            "$ref": "#/components/schemas/AcsChallengeMandate"
          },
          "authenticationType": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authenticationResult": {
            "$ref": "#/components/schemas/AuthenticationResult"
          },
          "flow": {
            "$ref": "#/components/schemas/Flow"
          },
          "reasonId": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "cardholderInfoText": {
            "type": "string",
            "description": "The text provided by the ACS/Issuer to the cardholder during a frictionless transaction that was not authenticated by the ACS/Issuer. For example: 'Additional authentication is needed for this transaction. Please contact [Issuer Name] at xxx-xxx-xxxx.' If this parameter is populated, the merchant must display the information to the cardholder."
          },
          "challengePreferenceReason": {
            "type": "string",
            "description": "This value is returned following a 3D-Secure v2 challenge and describes the reason for challenge. Press [here](https://docs.nuvei.com/?p=492581#challenge-preference-reasons) for more information."
          },
          "acquirerDecision": {
            "type": "string",
            "description": "The acquirer's request from the merchant to perform a certain flow. Values: ChallengeRequest, ExemptionRequest"
          },
          "challengeCancelReason": {
            "type": "string",
            "description": "Reason description for a canceled 3D-Secure authorization as received from the issuer."
          },
          "challengeCancelReasonId": {
            "type": "string",
            "description": "Reason ID for a canceled 3D-Secure authorization as received from the issuer."
          },
          "isLiabilityOnIssuer": {
            "type": "boolean",
            "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."
          }
        }
      },
      "ThreeDPaymentOutput": {
        "title": "ThreeD Output Object",
        "type": "object",
        "properties": {
          "dsTransId": {
            "type": "string",
            "description": "The transaction ID of the Directory Server (part of the fingerprintPayload).",
            "format": "uuid"
          },
          "acsUrl": {
            "type": "string",
            "description": "The URL of the Access Control Server to perform the challenge request."
          },
          "cReq": {
            "type": "string",
            "description": "The payload to be posted to the acsUrl to perform the challenge request."
          },
          "acsTransId": {
            "type": "string",
            "description": "The transaction ID of the Access Control Server (part of the cReq).",
            "format": "uuid"
          },
          "eci": {
            "maxLength": 2,
            "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=492931).",
            "example": "2"
          },
          "cavv": {
            "maxLength": 40,
            "type": "string",
            "description": "Cardholder Authentication Verification Value - cryptographically secure hash of various pieces of information related to the transaction that can be used as a proof for the 3DS authentication."
          },
          "whiteListStatus": {
            "$ref": "#/components/schemas/WhiteListStatus"
          },
          "acsChallengeMandate": {
            "$ref": "#/components/schemas/AcsChallengeMandate"
          },
          "authenticationType": {
            "$ref": "#/components/schemas/AuthenticationType"
          },
          "authenticationResult": {
            "$ref": "#/components/schemas/AuthenticationResult"
          },
          "flow": {
            "$ref": "#/components/schemas/Flow"
          },
          "reasonId": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "cardholderInfoText": {
            "type": "string",
            "description": "The text provided by the ACS/Issuer to the cardholder during a frictionless transaction that was not authenticated by the ACS/Issuer. For example: 'Additional authentication is needed for this transaction. Please contact [Issuer Name] at xxx-xxx-xxxx.' If this parameter is populated, the merchant must display the information to the cardholder."
          },
          "challengePreferenceReason": {
            "type": "string",
            "description": "This value is returned following a 3D-Secure v2 challenge and describes the reason for challenge. Press [here](https://docs.nuvei.com/?p=492581#challenge-preference-reasons) for more information."
          },
          "acquirerDecision": {
            "type": "string",
            "description": "The acquirer's request from the merchant to perform a certain flow. Values: ChallengeRequest, ExemptionRequest"
          },
          "challengeCancelReason": {
            "type": "string",
            "description": "Reason description for a canceled 3D-Secure authorization as received from the issuer."
          },
          "challengeCancelReasonId": {
            "type": "string",
            "description": "Reason ID for a canceled 3D-Secure authorization as received from the issuer."
          },
          "isLiabilityOnIssuer": {
            "type": "boolean",
            "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."
          }
        }
      },
      "ThreeDOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseThreeDOutput"
          },
          {
            "$ref": "#/components/schemas/ThreeDPaymentOutput"
          }
        ]
      },
      "ThreeDChallengeOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseThreeDOutput"
          },
          {
            "$ref": "#/components/schemas/ThreeDPaymentChallengeOutput"
          }
        ]
      },
      "Flow": {
        "title": "Flow",
        "type": "string",
        "description": "The 3D-Secure flow required by the issuer. Values: 1 = Challenge | 2 = Frictionless | 3 = Exemption | 4 = NoLiability | 5 = Stop",
        "enum": [
          "Challenge",
          "Frictionless",
          "Exemption",
          "NoLiability",
          "Stop"
        ]
      },
      "providerResponseDetails": {
        "title": "providerResponseDetails",
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 100,
            "type": "string"
          },
          "reason": {
            "maxLength": 400,
            "type": "string"
          }
        }
      },
      "additionalTransactionInfo": {
        "title": "additionalTransactionInfo",
        "type": "object",
        "properties": {
          "additionalTransactionBankId": {
            "type": "string"
          },
          "additionalExternalTransactionId": {
            "type": "string"
          },
          "referenceId": {
            "type": "string"
          }
        }
      },
      "AftDetails": {
        "type": "object",
        "properties": {
          "aftOverride": {
            "$ref": "#/components/schemas/AftOverride"
          }
        }
      },
      "AftOverride": {
        "type": "boolean",
        "description": "true or false"
      },
      "PayoutRequest": {
        "title": "PayoutRequest",
        "required": [
          "amount",
          "currency",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantTransactionId": {
            "maxLength": 45,
            "type": "string",
            "description": "ID of the transaction in the merchant system."
          },
          "currencyConversion": {
            "$ref": "#/components/schemas/CurrencyConversion"
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "productId": {
            "maxLength": 50,
            "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."
          },
          "siteNameOverride": {
            "maxLength": 255,
            "type": "string"
          },
          "custom": {
            "$ref": "#/components/schemas/KeyValuePair"
          },
          "deviceDetails": {
            "$ref": "#/components/schemas/DeviceDetails"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/SubMerchant"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionPayout"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BuyerDetails"
          },
          "companyDetails": {
            "$ref": "#/components/schemas/CompanyDetails"
          },
          "digitalAssetType": {
            "$ref": "#/components/schemas/DigitalAssetType"
          }
        }
      },
      "PaymentOptionPayout": {
        "title": "paymentOptionPayout",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardInputPayout"
          },
          "paymentToken": {
            "$ref": "#/components/schemas/TokenInputUnreferencedRefund"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentTokenInputUnreferencedRefund"
          },
          "store": {
            "$ref": "#/components/schemas/StoreUnreferencedRefund"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmInputPayout"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenPayout"
          }
        }
      },
      "CardInputPayout": {
        "title": "cardInputPayout",
        "required": [
          "cardNumber",
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The cardholder name."
          },
          "cardNumber": {
            "maxLength": 20,
            "minLength": 6,
            "type": "string",
            "description": "The full card number."
          },
          "expirationMonth": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^(0[1-9]|1[0-2])$",
            "type": "string",
            "description": "The card expiration month.",
            "example": "12"
          },
          "expirationYear": {
            "maxLength": 4,
            "minLength": 2,
            "pattern": "^(\\d{4}|\\d{2})$",
            "type": "string",
            "example": "2023"
          },
          "cvv": {
            "$ref": "#/components/schemas/CVV"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "selectedBrand": {
            "type": "string"
          }
        }
      },
      "CompanyDetails": {
        "type": "object",
        "properties": {
          "taxId": {
            "maxLength": 55,
            "type": "string"
          }
        }
      },
      "ApmInputPayout": {
        "title": "ApmDetailsPayout",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "example": "ACH"
          },
          "data": {
            "$ref": "#/components/schemas/MaskedKeyValuePair"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          }
        }
      },
      "NetworkTokenPayout": {
        "title": "NetworkTokenPayout",
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/TokenProvider"
          },
          "token": {
            "type": "string",
            "description": "This encrypted token (REQUIRED for Apple Pay, Google Pay and Paze) represents a customer payment method generated by the external token provider"
          },
          "tokenNumber": {
            "maxLength": 20,
            "type": "string"
          },
          "expirationMonth": {
            "maxLength": 2,
            "type": "string"
          },
          "expirationYear": {
            "maxLength": 4,
            "type": "string"
          },
          "tokenAssuranceLevel": {
            "type": "string"
          },
          "tokenRequestorId": {
            "type": "string"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantReference"
          },
          "cardBrand": {
            "maxLength": 20,
            "type": "string",
            "description": "The card brand used in the transaction. Values: VISA, MASTERCARD, AMEX"
          },
          "panLast4Digits": {
            "maxLength": 4,
            "type": "string",
            "description": "The last four digits of the card number."
          },
          "cardHolderName": {
            "maxLength": 70,
            "type": "string",
            "description": "The card holder name."
          },
          "eciIndicator": {
            "maxLength": 2,
            "type": "string"
          },
          "deviceManufacturerIdentifier": {
            "type": "string"
          }
        }
      },
      "PayoutResponse": {
        "title": "PayoutResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "payoutId": {
            "$ref": "#/components/schemas/IdType"
          },
          "transactionId": {
            "$ref": "#/components/schemas/TransactionId"
          },
          "externalTransactionId": {
            "$ref": "#/components/schemas/ExternalTransactionId"
          },
          "amount": {
            "minimum": 0,
            "exclusiveMinimum": true,
            "type": "number",
            "description": "The transaction amount."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes)."
          },
          "authCode": {
            "maxLength": 128,
            "type": "string",
            "description": "The authorization code of the transaction."
          },
          "providerResponseDetails": {
            "$ref": "#/components/schemas/providerResponseDetails"
          },
          "additionalTransactionInfo": {
            "$ref": "#/components/schemas/additionalTransactionInfo"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionPayoutOutput"
          },
          "aftDetails": {
            "$ref": "#/components/schemas/AftDetailsOutput"
          },
          "schemeDetails": {
            "$ref": "#/components/schemas/SchemeDetails"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "PaymentOptionPayoutOutput": {
        "title": "PaymentOptionPayoutOutput",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/BaseCardOutput"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmOutputPayout"
          },
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenPayoutOutput"
          }
        }
      },
      "ApmOutputPayout": {
        "title": "ApmOutputPayout",
        "allOf": [
          {
            "$ref": "#/components/schemas/ApmInputPayout"
          },
          {
            "type": "object",
            "properties": {
              "paymentTokenId": {
                "$ref": "#/components/schemas/TokenId"
              }
            }
          }
        ]
      },
      "TokenData": {
        "title": "TokenData",
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        }
      },
      "DigitalAssetType": {
        "type": "string",
        "enum": [
          "Default",
          "CBDC",
          "TokenizedDeposit",
          "Stablecoin",
          "NativeToken",
          "NFT"
        ]
      },
      "PaymentFlowSelector": {
        "title": "Payment Flow",
        "type": "object",
        "properties": {
          "flow": {
            "$ref": "#/components/schemas/SupportedPaymentFlows"
          }
        }
      },
      "SupportedPaymentFlows": {
        "title": "Supported payment flows",
        "type": "string",
        "default": "direct",
        "enum": [
          "direct",
          "redirect"
        ]
      },
      "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"
          },
          "msisdn": {
            "type": "string",
            "description": "Device MSISDN"
          },
          "iccId": {
            "type": "string",
            "description": "Device ICCID"
          },
          "imei": {
            "type": "string",
            "description": "Device IMEI"
          },
          "devicePossessionStatus": {
            "$ref": "#/components/schemas/DevicePossessionStatus"
          },
          "deviceManufacturerIdentifier": {
            "type": "string"
          }
        }
      },
      "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."
          }
        }
      },
      "DevicePossessionStatus": {
        "title": "DevicePossessionStatus",
        "type": "string",
        "description": "Indication if the device is lost or stolen",
        "enum": [
          "lost",
          "stolen"
        ]
      },
      "BuyerDetails": {
        "title": "userDetails",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "buyerId": {
                "maxLength": 255,
                "type": "string",
                "description": "The `buyerId` is required if `buyerToken` is provided as a value in the `store` parameter."
              }
            }
          },
          {
            "$ref": "#/components/schemas/BasicBuyerDetails"
          }
        ]
      },
      "BasicBuyerDetails": {
        "title": "userDetailsNoId",
        "type": "object",
        "properties": {
          "firstName": {
            "maxLength": 30,
            "type": "string"
          },
          "middleName": {
            "maxLength": 40,
            "type": "string"
          },
          "lastName": {
            "maxLength": 40,
            "type": "string"
          },
          "companyName": {
            "maxLength": 100,
            "type": "string"
          },
          "locale": {
            "maxLength": 5,
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date"
          },
          "email": {
            "maxLength": 100,
            "type": "string"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "phone2": {
            "maxLength": 18,
            "type": "string"
          },
          "workPhone": {
            "maxLength": 18,
            "type": "string"
          },
          "identificationType": {
            "$ref": "#/components/schemas/IdentificationType"
          },
          "identificationValue": {
            "$ref": "#/components/schemas/IdentificationValue"
          },
          "cardHolderEntityType": {
            "$ref": "#/components/schemas/CardHolderEntityType"
          },
          "nationalIdentificationNumber": {
            "maxLength": 25,
            "type": "string"
          },
          "accountReference": {
            "$ref": "#/components/schemas/BuyerAccountReference"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/BillingAddress"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/ShippingAddress"
          }
        }
      },
      "IdentificationType": {
        "title": "Identification Type Code",
        "type": "string",
        "enum": [
          "DateOfBirth",
          "CustomerId",
          "NationalId",
          "PassportNumber",
          "DriverLicense",
          "TaxId",
          "CompanyRegistrationNumber",
          "ProxyId",
          "SocialSecurityNumber",
          "AlienRegistrationNumber",
          "LawEnforcementId",
          "MilitaryId",
          "TravelId",
          "Email",
          "PhoneNumber"
        ]
      },
      "IdentificationValue": {
        "title": "Identification Value",
        "maxLength": 100,
        "type": "string"
      },
      "CardHolderEntityType": {
        "title": "Cardholder Entity Type",
        "type": "string",
        "enum": [
          "Business",
          "Individual"
        ]
      },
      "BuyerAccountReference": {
        "maxLength": 34,
        "type": "string"
      },
      "BillingAddress": {
        "title": "billingAddress",
        "required": [
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "address": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine2": {
            "maxLength": 60,
            "type": "string"
          },
          "addressLine3": {
            "maxLength": 60,
            "type": "string"
          },
          "street": {
            "maxLength": 100,
            "type": "string"
          },
          "state": {
            "maxLength": 6,
            "type": "string"
          },
          "zip": {
            "maxLength": 10,
            "type": "string"
          },
          "city": {
            "maxLength": 30,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "2 digits ISO country code"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "addressMatch": {
            "type": "boolean"
          }
        }
      },
      "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"
          },
          "streetNumber": {
            "maxLength": 20,
            "type": "string"
          },
          "state": {
            "maxLength": 6,
            "type": "string"
          },
          "zip": {
            "maxLength": 10,
            "type": "string"
          },
          "city": {
            "maxLength": 30,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "firstName": {
            "maxLength": 30,
            "type": "string"
          },
          "lastName": {
            "maxLength": 40,
            "type": "string"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "phone2": {
            "maxLength": 18,
            "type": "string"
          },
          "careOf": {
            "type": "string",
            "description": "Name of the person/entity to whose care the shipment is addressed."
          },
          "salutation": {
            "type": "string",
            "description": "Salutation used for the shipping recipient (e.g., Mr, Ms, Dr)."
          },
          "ShippingTrackingDetails": {
            "$ref": "#/components/schemas/ShippingTrackingDetails"
          }
        }
      },
      "ShippingTrackingDetails": {
        "type": "object",
        "properties": {
          "customerNumber": {
            "type": "string",
            "description": "Customer number associated with the shipment."
          },
          "addressType": {
            "type": "string",
            "description": "Type of shipping address (e.g., residential, business)."
          },
          "shippingType": {
            "type": "string",
            "description": "Shipping method/type (e.g., standard, express)."
          },
          "shippingCarrierName": {
            "type": "string",
            "description": "Name of the shipping carrier."
          },
          "trackingId": {
            "type": "string",
            "description": "Tracking identifier provided by the carrier."
          },
          "trackingUrl": {
            "type": "string",
            "description": "URL where tracking status can be viewed.",
            "format": "uri"
          }
        }
      },
      "RecipientDetails": {
        "type": "object",
        "properties": {
          "firstName": {
            "maxLength": 30,
            "type": "string"
          },
          "middleName": {
            "maxLength": 40,
            "type": "string"
          },
          "lastName": {
            "maxLength": 40,
            "type": "string"
          },
          "email": {
            "maxLength": 100,
            "type": "string"
          },
          "phone": {
            "maxLength": 18,
            "type": "string"
          },
          "address": {
            "minLength": 1,
            "type": "string",
            "deprecated": true
          },
          "addressLine2": {
            "minLength": 1,
            "type": "string",
            "deprecated": true
          },
          "identificationType": {
            "$ref": "#/components/schemas/IdentificationType"
          },
          "identificationValue": {
            "$ref": "#/components/schemas/IdentificationValue"
          },
          "cardHolderEntityType": {
            "$ref": "#/components/schemas/CardHolderEntityType"
          },
          "accountReference": {
            "$ref": "#/components/schemas/RecipientAccountReference"
          },
          "addressDetails": {
            "$ref": "#/components/schemas/RecipientAddress"
          }
        }
      },
      "RecipientAccountReference": {
        "maxLength": 34,
        "type": "string"
      },
      "RecipientAddress": {
        "type": "object",
        "properties": {
          "address": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "addressLine2": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "street": {
            "maxLength": 100,
            "type": "string"
          },
          "zip": {
            "maxLength": 25,
            "type": "string"
          },
          "city": {
            "maxLength": 30,
            "type": "string"
          },
          "state": {
            "maxLength": 2,
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "type": "string"
          }
        }
      },
      "NameInquiryInput": {
        "title": "NameInquiryInput",
        "type": "object",
        "properties": {
          "enable": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "RiskAddendum": {
        "title": "RiskAddendum",
        "type": "object",
        "properties": {
          "buyerRiskDetails": {
            "$ref": "#/components/schemas/BuyerRiskDetails"
          },
          "recipientRiskDetails": {
            "$ref": "#/components/schemas/RecipientRiskDetails"
          },
          "buyerRecipientInteraction": {
            "$ref": "#/components/schemas/BuyerRecipientInteraction"
          },
          "transactionMetrics": {
            "$ref": "#/components/schemas/TransactionMetrics"
          },
          "paymentFlow": {
            "$ref": "#/components/schemas/PaymentFlow"
          },
          "deliveryInfo": {
            "$ref": "#/components/schemas/DeliveryInfo"
          },
          "travelBookingInfo": {
            "$ref": "#/components/schemas/TravelBookingInfo"
          },
          "geoLocation": {
            "$ref": "#/components/schemas/GeoLocation"
          },
          "merchantScores": {
            "$ref": "#/components/schemas/MerchantScores"
          },
          "storeInfo": {
            "$ref": "#/components/schemas/StoreInfo"
          },
          "customData": {
            "$ref": "#/components/schemas/AddendumCustomData"
          }
        }
      },
      "BuyerRiskDetails": {
        "title": "BuyerRiskDetails",
        "type": "object",
        "properties": {
          "customerSince": {
            "type": "string",
            "format": "date-time"
          },
          "signUpIp": {
            "type": "string"
          },
          "popularityScore": {
            "$ref": "#/components/schemas/PopularityScore"
          },
          "isExistingCustomer": {
            "type": "boolean"
          },
          "isLoyaltyFlagExists": {
            "type": "boolean"
          }
        }
      },
      "PopularityScore": {
        "title": "PopularityScore",
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high"
        ]
      },
      "RecipientRiskDetails": {
        "title": "RecipientRiskDetails",
        "type": "object",
        "properties": {
          "businessName": {
            "type": "string"
          },
          "signUpIp": {
            "type": "string"
          },
          "popularityScore": {
            "$ref": "#/components/schemas/PopularityScore"
          },
          "customerSince": {
            "type": "string",
            "format": "date-time"
          },
          "phoneCreateDate": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BuyerRecipientInteraction": {
        "title": "BuyerRecipientInteraction",
        "type": "object",
        "properties": {
          "firstInteractionAt": {
            "type": "string",
            "format": "date-time"
          },
          "interaction3Months": {
            "$ref": "#/components/schemas/InteractionFrequency"
          },
          "interactionFrequency": {
            "$ref": "#/components/schemas/InteractionFrequency"
          },
          "firstInteractionWithApp": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "InteractionFrequency": {
        "title": "InteractionFrequency",
        "type": "string",
        "enum": [
          "low",
          "medium",
          "high"
        ]
      },
      "TransactionMetrics": {
        "title": "TransactionMetrics",
        "type": "object",
        "properties": {
          "transactionsCount1H": {
            "type": "integer"
          },
          "transactionsCount24H": {
            "type": "integer"
          },
          "transactionsCount3Months": {
            "type": "integer"
          },
          "transactionsCountTotal": {
            "type": "integer"
          },
          "numberTopUps24H": {
            "type": "integer"
          },
          "numberTopUpReceivers": {
            "type": "integer"
          },
          "chargebacksIndicator": {
            "$ref": "#/components/schemas/ChargebacksIndicator"
          },
          "isTangible": {
            "type": "boolean"
          }
        }
      },
      "ChargebacksIndicator": {
        "title": "ChargebacksIndicator",
        "type": "string",
        "enum": [
          "zero",
          "low",
          "medium",
          "high"
        ]
      },
      "PaymentFlow": {
        "title": "PaymentFlow",
        "type": "object",
        "properties": {
          "paymentConsentMode": {
            "$ref": "#/components/schemas/PaymentConsentMode"
          },
          "highRiskItemFlag": {
            "type": "boolean"
          },
          "verticalCategory": {
            "type": "string"
          },
          "isTangible": {
            "type": "boolean"
          }
        }
      },
      "PaymentConsentMode": {
        "title": "PaymentConsentMode",
        "type": "string",
        "enum": [
          "automatic",
          "manual"
        ]
      },
      "DeliveryInfo": {
        "title": "DeliveryInfo",
        "type": "object",
        "properties": {
          "deliveryMethod": {
            "type": "string"
          },
          "deliveryAddressChangedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TravelBookingInfo": {
        "title": "TravelBookingInfo",
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "serviceStartAt": {
            "type": "string",
            "format": "date-time"
          },
          "serviceEndAt": {
            "type": "string",
            "format": "date-time"
          },
          "changeGuestAllowed": {
            "type": "boolean"
          },
          "startCountry": {
            "type": "string"
          },
          "endCountry": {
            "type": "string"
          },
          "startCity": {
            "type": "string"
          },
          "endCity": {
            "type": "string"
          },
          "startZipCode": {
            "type": "string"
          },
          "endZipCode": {
            "type": "string"
          },
          "startSpot": {
            "type": "string"
          },
          "endSpot": {
            "type": "string"
          }
        }
      },
      "GeoLocation": {
        "title": "GeoLocation",
        "type": "object",
        "properties": {
          "storeLatitude": {
            "type": "string"
          },
          "storeLongitude": {
            "type": "string"
          },
          "senderLatitude": {
            "type": "string"
          },
          "senderLongitude": {
            "type": "string"
          }
        }
      },
      "MerchantScores": {
        "title": "MerchantScores",
        "type": "object",
        "properties": {
          "multiCardUsageIndicator": {
            "type": "integer",
            "description": "Indication of 2 cards transaction. Values:\n  `0` - not a multicard transaction\n  `1` - multicard transaction with 1st card\n  `2` - multicard transaction with 2nd card\n"
          },
          "identityRiskScore": {
            "type": "number"
          },
          "phoneVerificationRiskScore": {
            "type": "number"
          }
        }
      },
      "StoreInfo": {
        "title": "StoreInfo",
        "type": "object",
        "properties": {
          "storeId": {
            "type": "string"
          }
        }
      },
      "AddendumCustomData": {
        "title": "AddendumCustomData",
        "type": "object",
        "properties": {
          "stringOne": {
            "type": "string"
          },
          "stringTwo": {
            "type": "string"
          },
          "intOne": {
            "type": "integer"
          }
        }
      },
      "InstallmentsAddendum": {
        "title": "InstallmentsAddendum",
        "allOf": [
          {
            "$ref": "#/components/schemas/FrontEndInstallmentsAddendum"
          },
          {
            "$ref": "#/components/schemas/VisaInstallmentsAddendum"
          }
        ]
      },
      "FrontEndInstallmentsAddendum": {
        "title": "FrontEndInstallmentsAddendum",
        "type": "object",
        "properties": {
          "numberOfInstallments": {
            "type": "integer"
          },
          "type": {
            "type": "string",
            "enum": [
              "deferredWithInterest",
              "deferredWithoutInterest",
              "deferredWithoutInterestAndGracePeriod"
            ]
          },
          "fundAnticipationType": {
            "type": "string",
            "enum": [
              "fundedPerOriginalPlan",
              "fundedAfter1Day",
              "fundedAfter30Days"
            ]
          },
          "debitType": {
            "type": "string",
            "enum": [
              "singularPayment",
              "installments",
              "specialDebit"
            ]
          }
        }
      },
      "VisaInstallmentsAddendum": {
        "title": "VisaInstallmentsAddendum",
        "type": "object",
        "properties": {
          "planId": {
            "type": "integer"
          },
          "planIdReference": {
            "maxLength": 20,
            "type": "string"
          },
          "termsAndConditionsVersion": {
            "type": "string"
          }
        }
      },
      "LocalPaymentAddendum": {
        "title": "LocalPaymentAddendum",
        "type": "object",
        "properties": {
          "vatAmount": {
            "type": "number",
            "description": "VAT tax amount calculated by the merchant in domestic currency"
          },
          "nationalConsumptionTaxAmount": {
            "type": "number",
            "description": "Consumption tax amount calculated by the merchant in domestic currency"
          },
          "taxBase": {
            "$ref": "#/components/schemas/LocalPaymentTaxBase"
          },
          "tipAmount": {
            "type": "number",
            "description": "Tip amount paid during the purchase transaction"
          },
          "airportChargeAmount": {
            "type": "number",
            "description": "Airport charge portion of an airline ticket purchase"
          },
          "nationalId": {
            "type": "string",
            "description": "Cardholder national identification number"
          }
        }
      },
      "LocalPaymentTaxBase": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Purchase amount in domestic currency on which taxes were calculated"
          },
          "currencyCode": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "ISO-4217 alpha-3 currency code"
          }
        }
      },
      "LodgingAddendum": {
        "title": "LodgingAddendum",
        "type": "object",
        "properties": {
          "reservationDetails": {
            "$ref": "#/components/schemas/LodgingReservationDetails"
          }
        }
      },
      "LodgingReservationDetails": {
        "title": "LodgingReservationDetails",
        "type": "object",
        "properties": {
          "purchaseId": {
            "type": "string",
            "description": "Merchant reference"
          },
          "customerServicePhone": {
            "type": "string",
            "description": "Customer service phone number"
          },
          "noShowIndicator": {
            "$ref": "#/components/schemas/NoShowIndicator"
          },
          "extraCharges": {
            "$ref": "#/components/schemas/LodgingExtraCharges"
          },
          "checkInDate": {
            "type": "string",
            "description": "Check-in date in YYYYMMDD format"
          },
          "checkOutDate": {
            "type": "string",
            "description": "Check-out date in YYYYMMDD format"
          },
          "propertyPhone": {
            "type": "string",
            "description": "Property phone number"
          },
          "lodgingName": {
            "type": "string",
            "description": "Hotel or cruise name"
          },
          "lodgingType": {
            "$ref": "#/components/schemas/LodgingType"
          },
          "totalAuthAmount": {
            "type": "number",
            "description": "Total authorized amount"
          },
          "rooms": {
            "$ref": "#/components/schemas/LodgingRoomDetails"
          },
          "passengerDetails": {
            "type": "array",
            "description": "List of passengers",
            "items": {
              "$ref": "#/components/schemas/LodgingPassengerDetails"
            }
          },
          "segments": {
            "maxItems": 4,
            "type": "array",
            "description": "Departure leg dates, up to 4",
            "items": {
              "$ref": "#/components/schemas/LodgingSegment"
            }
          }
        }
      },
      "NoShowIndicator": {
        "title": "NoShowIndicator",
        "type": "string",
        "enum": [
          "NotApplicable",
          "NoShow"
        ]
      },
      "LodgingExtraCharges": {
        "title": "LodgingExtraCharges",
        "type": "string",
        "enum": [
          "PositionNotUsed",
          "Reserved",
          "Restaurant",
          "GiftShop",
          "MiniBar",
          "Telephone",
          "Other",
          "Laundry"
        ]
      },
      "LodgingType": {
        "title": "LodgingType",
        "type": "string",
        "enum": [
          "Cruise",
          "Hotel"
        ]
      },
      "LodgingRoomDetails": {
        "title": "LodgingRoomDetails",
        "type": "object",
        "properties": {
          "rate": {
            "type": "number",
            "description": "Daily room rate"
          },
          "nights": {
            "type": "integer",
            "description": "Total number of nights"
          }
        }
      },
      "LodgingPassengerDetails": {
        "title": "LodgingPassengerDetails",
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string",
            "description": "Full name of the passenger"
          }
        }
      },
      "LodgingSegment": {
        "title": "LodgingSegment",
        "type": "object",
        "properties": {
          "departureDate": {
            "type": "string",
            "description": "Departure date in YYYYMMDD format"
          }
        }
      },
      "ExternalAuthorizationAddendum": {
        "title": "ExternalAuthorizationAddendum",
        "type": "object",
        "properties": {
          "approvalCode": {
            "maxLength": 6,
            "minLength": 1,
            "type": "string",
            "description": "Payment approval or authorization code provided by the card scheme.Present only for approved transactions."
          },
          "formOfPaymentTransactionIdentifier": {
            "type": "string",
            "description": "Visa exactly 21 characters, Mastercard exactly 15 characters."
          },
          "cardVerificationValueResult": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "CVV verification result returned by the card scheme."
          },
          "sourceOfApprovalCode": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Source of approval code. Allowed values: \"M\", \"C\", or space.\n"
          },
          "dateOfIssue": {
            "pattern": "^[0-9]{6}$",
            "type": "string",
            "description": "Scheme authorization date in YYMMDD format. Not an ISO date. Leading zeros must be preserved.\n"
          },
          "timeOfIssue": {
            "pattern": "^[0-9]{4}$",
            "type": "string",
            "description": "Scheme authorization time in HHMM format. Not an ISO time.\n"
          },
          "bspCountryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "BSP country code as a 2-letter ISO-3166 alpha-2 code.\n"
          },
          "retrievalReferenceNumber": {
            "maxLength": 12,
            "minLength": 12,
            "type": "string",
            "description": "Retrieval Reference Number (RRN). If not available, must be sent as 12 zeros.\n"
          },
          "systemTraceAuditNumber": {
            "maxLength": 6,
            "minLength": 6,
            "type": "string",
            "description": "System Trace Audit Number (STAN). If not available, must be sent as 6 zeros.\n"
          },
          "schemeResponseCode": {
            "maxLength": 3,
            "minLength": 1,
            "type": "string",
            "description": "Original response code returned by the card scheme. Used mainly for declined authorizations and reporting.\n"
          },
          "additionalCardPaymentDataVisa": {
            "$ref": "#/components/schemas/AdditionalCardPaymentDataVisa"
          },
          "additionalCardPaymentDataMC": {
            "$ref": "#/components/schemas/AdditionalCardPaymentDataMC"
          }
        }
      },
      "AdditionalCardPaymentDataVisa": {
        "title": "AdditionalCardPaymentDataVisa",
        "type": "object",
        "properties": {
          "pointOfServiceEntryModeCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Visa POS entry mode code."
          },
          "cardSequenceNumber": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Card sequence number. Numeric or space-padded.\n"
          },
          "pointOfServiceEntryConditionCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Visa POS entry condition code."
          },
          "responseCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Visa authorization response code. \"00\" indicates approval.\n"
          },
          "additionalPosInformation": {
            "$ref": "#/components/schemas/AdditionalPOSInformation"
          },
          "authorisationCharacteristicsIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Visa authorization characteristics indicator. May be space-padded."
          }
        },
        "description": "Visa-specific POS and authorization data."
      },
      "AdditionalPOSInformation": {
        "title": "AdditionalPOSInformation",
        "type": "object",
        "properties": {
          "terminalType": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Terminal type indicator."
          },
          "terminalEntryCapability": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Terminal entry capability indicator."
          },
          "chipConditionCode": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Chip condition code. Numeric or space.\n"
          },
          "specialConditionIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Special condition indicator. Numeric or space.\n"
          },
          "chipTransactionIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Chip transaction indicator. Numeric or space.\n"
          },
          "chipCardAuthenticationReliabilityIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Chip card authentication reliability indicator. Numeric or space.\n"
          },
          "cardholderIdMethodIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Cardholder ID method indicator."
          }
        },
        "description": "Visa additional POS indicators."
      },
      "AdditionalCardPaymentDataMC": {
        "title": "AdditionalCardPaymentDataMC",
        "type": "object",
        "properties": {
          "pointOfServiceEntryMode": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Mastercard POS entry mode."
          },
          "cardSequenceNumber": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "Card sequence number. Numeric or space-padded.\n"
          },
          "posTerminalAttendance": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS terminal attendance indicator."
          },
          "posTerminalLocation": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS terminal location indicator."
          },
          "posCardholderPresence": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Cardholder presence indicator."
          },
          "posCardPresence": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Card presence indicator."
          },
          "posCardCaptureCapabilities": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS card capture capability indicator."
          },
          "posTransactionStatus": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS transaction status indicator."
          },
          "posTransactionSecurity": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS transaction security indicator."
          },
          "cardholderActivatedTerminalLevel": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "Cardholder-activated terminal level."
          },
          "posCardDataTerminalInputCapabilityIndicator": {
            "maxLength": 1,
            "minLength": 1,
            "type": "string",
            "description": "POS card data terminal input capability indicator."
          },
          "posAuthorisationLifecycle": {
            "type": "string"
          }
        },
        "description": "Mastercard-specific POS and authorization data."
      },
      "PaymentReservationAddendum": {
        "title": "PaymentReservationAddendum",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseReservationDetails"
          },
          {
            "$ref": "#/components/schemas/AuthPassengersDetails"
          }
        ]
      },
      "BaseReservationDetails": {
        "title": "BaseReservationDetails",
        "type": "object",
        "properties": {
          "pnrCode": {
            "type": "string",
            "description": "Passenger Name Record identifier in airline reservation system"
          },
          "bookingSystemUniqueId": {
            "type": "string",
            "description": "Unique reservation identifier in the GDS"
          },
          "computerizedReservationSystem": {
            "type": "string",
            "description": "CRS name, e.g. `Amadeus`, `Sabre`, `Galileo`"
          },
          "ticketNumber": {
            "type": "string",
            "description": "Primary airline ticket number"
          },
          "documentType": {
            "type": "string",
            "description": "Document type, typically `TKT` (e-ticket) or `OT`"
          },
          "flightDateUtc": {
            "type": "string",
            "description": "UTC date/time of first flight leg",
            "format": "date-time"
          },
          "issueDateUtc": {
            "type": "string",
            "description": "UTC timestamp of last ticket issue or reissue",
            "format": "date-time"
          },
          "travelAgencyCode": {
            "type": "string",
            "description": "IATA agency code"
          },
          "travelAgencyName": {
            "type": "string",
            "description": "Travel agency name"
          },
          "travelAgencyInvoiceNumber": {
            "type": "string",
            "description": "Agency invoice reference"
          },
          "travelAgencyPlaneName": {
            "type": "string",
            "description": "Aircraft type ICAO code (e.g., `B737`)"
          },
          "restrictedTicketIndicator": {
            "$ref": "#/components/schemas/RestrictedTicketIndicator"
          },
          "issuingCarrierCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Two-letter IATA issuing airline code"
          },
          "isPayerTraveling": {
            "type": "boolean",
            "description": "Indicates whether the payer is a passenger"
          },
          "passengersCount": {
            "type": "integer",
            "description": "Total number of passengers (excluding infants)"
          },
          "infantsCount": {
            "type": "integer",
            "description": "Number of infants"
          },
          "payerPassportId": {
            "type": "string",
            "description": "Passport identifier of payer"
          },
          "totalAmounts": {
            "$ref": "#/components/schemas/TotalAmounts"
          },
          "ticketIssueAddress": {
            "type": "string",
            "description": "Ticket issuing location"
          },
          "ancillaryServices": {
            "$ref": "#/components/schemas/AncillaryServicesDetails"
          },
          "flightLegsDetails": {
            "maxItems": 4,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightLegDetails"
            }
          }
        }
      },
      "RestrictedTicketIndicator": {
        "title": "RestrictedTicketIndicator",
        "type": "string",
        "enum": [
          "Restricted",
          "NotRestricted"
        ]
      },
      "TotalAmounts": {
        "title": "TotalAmounts",
        "type": "object",
        "properties": {
          "fare": {
            "type": "number",
            "description": "Total fare excluding taxes and fees"
          },
          "taxes": {
            "type": "number",
            "description": "Total tax amount"
          },
          "fee": {
            "type": "number",
            "description": "Total fees"
          },
          "boardingFee": {
            "type": "number",
            "description": "Boarding or service fee"
          }
        }
      },
      "AncillaryServicesDetails": {
        "title": "AncillaryServicesDetails",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AncillaryServiceInfo"
        }
      },
      "AncillaryServiceInfo": {
        "title": "AncillaryServiceInfo",
        "type": "object",
        "properties": {
          "passenger": {
            "$ref": "#/components/schemas/AncillaryServicePassenger"
          },
          "flight": {
            "$ref": "#/components/schemas/AncillaryServiceFlight"
          },
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AncillaryService"
            }
          }
        }
      },
      "AncillaryServicePassenger": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        }
      },
      "AncillaryServiceFlight": {
        "type": "object",
        "properties": {
          "ticketNumber": {
            "type": "string"
          }
        }
      },
      "AncillaryService": {
        "title": "AncillaryService",
        "type": "object",
        "properties": {
          "categoryCode": {
            "type": "string"
          },
          "subCategoryCode": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          },
          "ticketNumber": {
            "type": "string"
          }
        }
      },
      "FlightLegDetails": {
        "title": "FlightLegDetails",
        "required": [
          "airlineCode",
          "arrivalDate",
          "departureAirport",
          "departureCountry",
          "departureDate",
          "destinationAirport",
          "destinationCountry",
          "flightNumber",
          "stopOverCode",
          "type"
        ],
        "type": "object",
        "properties": {
          "airlineCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "Two-letter IATA airline code"
          },
          "flightNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Airline flight number"
          },
          "departureDate": {
            "type": "string",
            "description": "Local departure airport date/time",
            "format": "date-time"
          },
          "arrivalDate": {
            "type": "string",
            "description": "Local arrival airport date/time",
            "format": "date-time"
          },
          "departureCountry": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "ISO-2 country code"
          },
          "departureCity": {
            "type": "string",
            "description": "Departure city name"
          },
          "departureAirport": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "IATA 3-letter departure airport code"
          },
          "destinationCountry": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "ISO-2 country code"
          },
          "destinationCity": {
            "type": "string",
            "description": "Destination city name"
          },
          "destinationAirport": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "IATA 3-letter destination airport code"
          },
          "type": {
            "$ref": "#/components/schemas/LegType"
          },
          "flightType": {
            "$ref": "#/components/schemas/FlightType"
          },
          "ticketDeliveryMethod": {
            "type": "string",
            "description": "For example - `P` physical or `E` electronic."
          },
          "ticketDeliveryRecipient": {
            "type": "string",
            "description": "Ticket recipient name"
          },
          "fareBasisCode": {
            "type": "string",
            "description": "Fare basis or booking code"
          },
          "serviceClass": {
            "type": "string",
            "description": "Cabin or service class"
          },
          "seatClass": {
            "type": "string",
            "description": "Seat or fare class"
          },
          "stopOverCode": {
            "$ref": "#/components/schemas/StopOverCode"
          },
          "departureTaxAmount": {
            "type": "number",
            "description": "Departure tax amount"
          },
          "departureTaxCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "ISO-3 currency code"
          },
          "fareAmount": {
            "type": "number",
            "description": "Fare amount for this leg"
          },
          "feeAmount": {
            "type": "number",
            "description": "Fees for this leg"
          },
          "taxAmount": {
            "type": "number",
            "description": "Taxes for this leg"
          },
          "layoutInterval": {
            "type": "integer",
            "description": "Minutes between legs"
          }
        }
      },
      "LegType": {
        "title": "LegType",
        "type": "string",
        "description": "`Domestic` or `International`",
        "enum": [
          "Domestic",
          "International"
        ]
      },
      "FlightType": {
        "title": "FlightType",
        "type": "string",
        "description": "`RoundTrip` or `OneWay`. Required when Risk pre-Auth is enabled",
        "enum": [
          "RoundTrip",
          "OneWay"
        ]
      },
      "StopOverCode": {
        "title": "StopOverCode",
        "maxLength": 1,
        "minLength": 1,
        "type": "string",
        "description": "`O` - destination, `X` - connection, or ` ` - blank",
        "enum": [
          "O",
          "X",
          " "
        ]
      },
      "AuthPassengersDetails": {
        "title": "AuthPassengersDetails",
        "type": "object",
        "properties": {
          "passengersDetails": {
            "maxItems": 10,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PassengerDetails"
            }
          }
        }
      },
      "PassengerDetails": {
        "title": "PassengerDetails",
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "passportNumber": {
            "type": "string",
            "description": "Passport number exactly as printed"
          },
          "customerCode": {
            "type": "string",
            "description": "Airline customer identifier"
          },
          "frequentFlyerCode": {
            "type": "string",
            "description": "Loyalty program number"
          },
          "title": {
            "type": "string",
            "description": "Passenger title, e.g. `Mr`, `Ms`, `Dr`"
          },
          "firstName": {
            "minLength": 1,
            "type": "string",
            "description": "Passenger first name"
          },
          "lastName": {
            "minLength": 1,
            "type": "string",
            "description": "Passenger last name"
          },
          "middleName": {
            "type": "string",
            "description": "Required if present on passport"
          },
          "passengerName": {
            "type": "string",
            "description": "Full passenger name as shown on the ticket"
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date of birth, YYYY-MM-DD",
            "format": "date"
          },
          "phone": {
            "type": "string",
            "description": "Passenger contact phone number"
          }
        }
      },
      "MarketplaceAddendum": {
        "title": "MarketplaceAddendum",
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "sellerDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketplaceSellerDetails"
            }
          },
          "buyerDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketplaceBuyerDetails"
            }
          }
        }
      },
      "MarketplaceSellerDetails": {
        "title": "MarketplaceSellerDetails",
        "type": "object",
        "properties": {
          "uniqueAccountIdentifier": {
            "$ref": "#/components/schemas/MarketplaceUniqueAccountIdentifier"
          },
          "subMerchant": {
            "$ref": "#/components/schemas/MarketplaceSubMerchant"
          },
          "productDetails": {
            "$ref": "#/components/schemas/MarketplaceProductDetails"
          },
          "accountDetails": {
            "$ref": "#/components/schemas/MarketplaceAccountDetails"
          },
          "sellerRating": {
            "type": "number"
          },
          "numberOfTrades": {
            "type": "number"
          },
          "volumeOfTrades": {
            "type": "number"
          }
        }
      },
      "MarketplaceUniqueAccountIdentifier": {
        "title": "MarketplaceUniqueAccountIdentifier",
        "type": "object",
        "properties": {
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "other": {
            "type": "string"
          }
        }
      },
      "MarketplaceSubMerchant": {
        "title": "MarketplaceSubMerchant",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          }
        }
      },
      "MarketplaceProductDetails": {
        "title": "MarketplaceProductDetails",
        "type": "object",
        "properties": {
          "category": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "MarketplaceAccountDetails": {
        "title": "MarketplaceAccountDetails",
        "type": "object",
        "properties": {
          "registrationDate": {
            "type": "string",
            "format": "date-time"
          },
          "accountLastModified": {
            "$ref": "#/components/schemas/MarketplaceAccountLastModified"
          }
        }
      },
      "MarketplaceAccountLastModified": {
        "title": "MarketplaceAccountLastModified",
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "format": "date-time"
          },
          "listing": {
            "type": "string",
            "format": "date-time"
          },
          "login": {
            "type": "string",
            "format": "date-time"
          },
          "address": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MarketplaceBuyerDetails": {
        "title": "MarketplaceBuyerDetails",
        "type": "object",
        "properties": {
          "uniqueAccountIdentifier": {
            "$ref": "#/components/schemas/MarketplaceUniqueAccountIdentifier"
          },
          "accountDetails": {
            "$ref": "#/components/schemas/MarketplaceAccountDetails"
          },
          "numberOfTrades": {
            "type": "number"
          },
          "volumeOfTrades": {
            "type": "number"
          }
        }
      },
      "Level23Addendum": {
        "title": "Level23Addendum",
        "type": "object",
        "properties": {
          "taxIndicator": {
            "$ref": "#/components/schemas/TaxIndicator"
          },
          "customerCode": {
            "maxLength": 25,
            "type": "string",
            "description": "Customer / consumer reference identifier."
          },
          "merchantVatRegistrationNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "Merchant VAT registration number or SBRN."
          },
          "customerVatRegistrationNumber": {
            "maxLength": 13,
            "type": "string",
            "description": "Customer VAT registration number."
          },
          "summaryCommodityCode": {
            "maxLength": 4,
            "type": "string",
            "description": "National standard commodity code."
          },
          "destinationZip": {
            "maxLength": 10,
            "type": "string",
            "description": "Destination postal code."
          },
          "shipFromZip": {
            "maxLength": 10,
            "type": "string",
            "description": "Shipment origin postal code."
          },
          "destinationCountryCode": {
            "maxLength": 3,
            "type": "string",
            "description": "Destination country code (ISO-3166)."
          },
          "uniqueVatReference": {
            "maxLength": 15,
            "type": "string",
            "description": "VAT invoice reference number."
          },
          "orderDate": {
            "maxLength": 6,
            "pattern": "^[0-9]{6}$",
            "type": "string",
            "description": "Date order was taken in `YYMMDD` format."
          },
          "vatOrTaxRate": {
            "type": "number",
            "description": "Tax rate applied to freight/shipping (implied decimals)."
          },
          "lineItemCount": {
            "type": "integer",
            "description": "Number of line items. Used as a counter/indicator, not the actual array size."
          },
          "lineItemCountTax": {
            "type": "integer",
            "description": "Canadian tax line item count."
          },
          "taxItems": {
            "maxItems": 6,
            "type": "array",
            "description": "Up to 6 Canadian tax items per transaction.",
            "items": {
              "$ref": "#/components/schemas/TaxItem"
            }
          },
          "items": {
            "maxItems": 998,
            "type": "array",
            "description": "Up to 998 Level 3 line items per transaction.",
            "items": {
              "$ref": "#/components/schemas/LineItem"
            }
          },
          "amountDetails": {
            "$ref": "#/components/schemas/Level23AmountDetails"
          }
        },
        "description": "Level 2 / Level 3 transaction data."
      },
      "TaxIndicator": {
        "title": "TaxIndicator",
        "type": "string",
        "description": "Indicates whether local tax is included.\n  * `NotIncluded`\n  * `StateOrProvincialIncluded`\n  * `NotSubjectToTax`\n\nMust contain `StateOrProvincialIncluded` if the local tax field is non-zero.\n",
        "enum": [
          "NotIncluded",
          "StateOrProvincialIncluded",
          "NotSubjectToTax"
        ]
      },
      "TaxItem": {
        "title": "TaxItem",
        "type": "object",
        "properties": {
          "taxAmountIndicator": {
            "$ref": "#/components/schemas/TaxAmountIndicator"
          },
          "taxAmount": {
            "type": "number",
            "description": "Detailed tax amount (implied decimals)."
          },
          "taxRate": {
            "maxLength": 5,
            "type": "string",
            "description": "Tax rate applied. Numeric value without decimal point; exponent provided separately. Example: `\"07500\"` with `taxRateExponent = 3` represents `7.5%`.\n"
          },
          "taxRateExponent": {
            "type": "integer",
            "description": "Decimal position for `taxRate`."
          },
          "taxTypeApplied": {
            "maxLength": 4,
            "type": "string",
            "description": "Tax category indicator."
          },
          "taxTypeIdentifier": {
            "maxLength": 2,
            "type": "string",
            "description": "Type of tax collected."
          }
        }
      },
      "TaxAmountIndicator": {
        "title": "TaxAmountIndicator",
        "type": "string",
        "description": "Indicator for additional tax capture / reporting.",
        "enum": [
          "NoAdditionalTaxReporting",
          "AdditionalTaxReporting"
        ]
      },
      "LineItem": {
        "title": "LineItem",
        "type": "object",
        "properties": {
          "commodityCode": {
            "maxLength": 12,
            "type": "string",
            "description": "Commodity classification code."
          },
          "description": {
            "maxLength": 35,
            "type": "string",
            "description": "Item description."
          },
          "productCode": {
            "maxLength": 12,
            "type": "string",
            "description": "Product identifier."
          },
          "quantity": {
            "maxLength": 12,
            "type": "string",
            "description": "Quantity purchased (exponent-based)."
          },
          "unitMeasure": {
            "maxLength": 12,
            "type": "string",
            "description": "Unit of measure code."
          },
          "price": {
            "type": "number",
            "description": "Unit price (implied decimals)."
          },
          "vatOrTaxAmount": {
            "type": "number",
            "description": "VAT or sales tax amount."
          },
          "vatOrTaxRate": {
            "type": "number",
            "description": "VAT / sales tax rate."
          },
          "totalAmount": {
            "type": "number",
            "description": "Total line item amount."
          },
          "discountRate": {
            "maxLength": 5,
            "type": "string",
            "description": "Discount rate (uses exponent)."
          },
          "discount": {
            "type": "number",
            "description": "Discount amount."
          },
          "taxType": {
            "maxLength": 4,
            "type": "string",
            "description": "Tax category indicator."
          },
          "quantityExponentIndicator": {
            "type": "integer",
            "description": "Decimal position of `quantity`."
          },
          "discountRateExponent": {
            "type": "integer",
            "description": "Decimal position of `discountRate`."
          },
          "discountTreatmentCode": {
            "$ref": "#/components/schemas/DiscountTreatmentCode"
          },
          "creditIndicator": {
            "$ref": "#/components/schemas/CreditIndicator"
          },
          "extendedAmount": {
            "type": "number",
            "description": "Quantity x price (net)."
          }
        }
      },
      "DiscountTreatmentCode": {
        "title": "DiscountTreatmentCode",
        "type": "string",
        "description": "Discount treatment code.",
        "enum": [
          "NoDiscount",
          "PostDiscountTax",
          "PreDiscountTax"
        ]
      },
      "CreditIndicator": {
        "title": "CreditIndicator",
        "type": "string",
        "description": "Debit / Credit indicator for the line item.",
        "enum": [
          "Debit",
          "Credit"
        ]
      },
      "Level23AmountDetails": {
        "title": "AmountDetails",
        "type": "object",
        "properties": {
          "taxAmount": {
            "type": "number",
            "description": "State or provincial tax amount included in the transaction amount. Expressed in the transaction currency, with two implied decimals. May contain zeros.\n"
          },
          "nationalTaxAmount": {
            "type": "number",
            "description": "National tax amount included in the transaction amount."
          },
          "totalDiscount": {
            "type": "number",
            "description": "Total discount amount applied."
          },
          "totalShipping": {
            "type": "number",
            "description": "Freight / shipping amount."
          },
          "dutyAmount": {
            "type": "number",
            "description": "Duty tax amount."
          },
          "vatOrTaxAmount": {
            "type": "number",
            "description": "VAT / tax on shipping."
          }
        }
      },
      "SettleReservationAddendum": {
        "title": "SettleReservationAddendum",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseReservationDetails"
          },
          {
            "$ref": "#/components/schemas/SettlePassengersDetails"
          }
        ]
      },
      "SettlePassengersDetails": {
        "title": "SettlePassengersDetails",
        "type": "object",
        "properties": {
          "passengersDetails": {
            "maxItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PassengerDetails"
            }
          }
        }
      },
      "AftDetailsOutput": {
        "title": "AFT Details Output",
        "type": "object",
        "properties": {
          "isAftTransaction": {
            "type": "boolean"
          },
          "isAftOverriden": {
            "type": "boolean"
          }
        }
      },
      "NameInquiryOutput": {
        "title": "NameInquiryOutput",
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/OverallInquiryStatus"
          },
          "firstName": {
            "$ref": "#/components/schemas/NameInquiryStatus"
          },
          "middleName": {
            "$ref": "#/components/schemas/NameInquiryStatus"
          },
          "lastName": {
            "$ref": "#/components/schemas/NameInquiryStatus"
          }
        }
      },
      "OverallInquiryStatus": {
        "title": "OverallInquiryStatus",
        "type": "string",
        "enum": [
          "noMatch",
          "partialMatch",
          "match",
          "unverified",
          "notPerformed",
          "notSupported"
        ]
      },
      "NameInquiryStatus": {
        "title": "NameInquiryStatus",
        "type": "string",
        "enum": [
          "noMatch",
          "partialMatch",
          "match",
          "unverified"
        ]
      },
      "SchemeDetails": {
        "title": "schemeDetails",
        "type": "object",
        "properties": {
          "transactionLinkId": {
            "description": "The Mastercard Transaction Link Identifier (TLID), a unique identifier provided by Mastercard and used to link an original transaction with related follow-up transactions, such as Merchant-Initiated Transactions (MITs) processed through other payment providers. Provided to enable merchants to correlate related Mastercard transactions across different payment providers and acquirers.",
            "type": "string"
          }
        }
      },
      "ExternalMpi": {
        "title": "ExternalMPI",
        "required": [
          "cavv"
        ],
        "type": "object",
        "properties": {
          "eci": {
            "$ref": "#/components/schemas/Eci"
          },
          "cavv": {
            "$ref": "#/components/schemas/Cavv"
          },
          "dsTransId": {
            "$ref": "#/components/schemas/DsTransId"
          },
          "challenge": {
            "$ref": "#/components/schemas/Challenge"
          },
          "externalRiskScore": {
            "$ref": "#/components/schemas/ExternalRiskScore"
          },
          "version": {
            "$ref": "#/components/schemas/ThreeDSVersion"
          }
        }
      },
      "Eci": {
        "title": "ECI",
        "maxLength": 2,
        "type": "string",
        "format": "/[0][0-9]/"
      },
      "Cavv": {
        "title": "CAVV",
        "maxLength": 28,
        "minLength": 1,
        "type": "string"
      },
      "DsTransId": {
        "title": "dsTransId",
        "type": "string",
        "format": "uuid"
      },
      "Challenge": {
        "title": "Challenge",
        "type": "object",
        "properties": {
          "preference": {
            "$ref": "#/components/schemas/Preference"
          },
          "exemptionReason": {
            "$ref": "#/components/schemas/ExemptionReason"
          }
        }
      },
      "Preference": {
        "title": "Preference",
        "type": "string",
        "enum": [
          "Challenge",
          "Exemption",
          "NoPreference"
        ]
      },
      "ExemptionReason": {
        "title": "ExemptionReason",
        "type": "string",
        "enum": [
          "InitialMerchantInitiatedTransaction",
          "InitialRecurringPayment",
          "AddCard",
          "AccountVerification",
          "MerchantInitiatedTransaction",
          "RecurringPayment",
          "MerchantSCADelegation",
          "WalletSCADelegation",
          "CorporateCard",
          "TrustedBeneficiaries",
          "AlwaysChallenge",
          "NoPreference",
          "RuleEngineChallenge",
          "LowValueTransaction",
          "TransactionRiskAnalysis",
          "SoftDeclineReSubmissionTo3DS2",
          "ElevatedWalletAuthentication",
          "FraudFilterReSubmissionTo3DS2"
        ]
      },
      "ExternalRiskScore": {
        "title": "ExternalRiskScore",
        "maximum": 100,
        "minimum": 0,
        "type": "integer",
        "description": "Higher values represent higher transaction risk"
      },
      "ThreeDSVersion": {
        "title": "3DS Version",
        "type": "string"
      },
      "MaskedKeyValuePair": {
        "title": "MaskedKeyValuePair",
        "type": "object",
        "example": {
          "accountNumber": "11345739548759",
          "routingNumber": "847937857"
        }
      },
      "UsageIntent": {
        "title": "UsageIntent",
        "type": "string",
        "enum": [
          "initial",
          "recurring",
          "direct"
        ]
      }
    },
    "parameters": {
      "idempotency-key": {
        "name": "idempotency-key",
        "in": "header",
        "description": "Idempotency Key for the request",
        "required": false,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "31f9952c-0058-458b-8244-4ae110ef1556"
      },
      "payment-id": {
        "name": "payment-id",
        "in": "path",
        "description": "Payment ID generated by REST API",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "49900038994789921"
      },
      "settle-id": {
        "name": "settle-id",
        "in": "path",
        "description": "Settle ID generated by REST API",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "49900038994789921"
      },
      "refund-id": {
        "name": "refund-id",
        "in": "path",
        "description": "Refund ID generated by REST API",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "49900038994789921"
      },
      "void-id": {
        "name": "void-id",
        "in": "path",
        "description": "Void ID generated by REST API",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        },
        "example": "49900038994789921"
      },
      "transactionId": {
        "name": "transactionId",
        "in": "path",
        "description": "The transaction ID",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "maxLength": 20,
          "type": "string"
        },
        "example": "2110000000011875900"
      },
      "transactionIdSource": {
        "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"
      },
      "processingEntityId": {
        "name": "processingEntityId",
        "in": "path",
        "description": "Processing `entityId` provided by Nuvei.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "example": "369bbe6d-4cbd-4d33-9205-2c83541cddab"
      }
    },
    "securitySchemes": {
      "accessToken": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  }
}