{
  "openapi": "3.0.0",
  "info": {
    "title": "Accounts API",
    "description": "REST 2.0 Accounts API",
    "version": "2.23.0"
  },
  "servers": [
    {
      "url": "https://api-sandbox.nuvei.com/account-api",
      "description": "sandbox"
    },
    {
      "url": "https://api.nuvei.com/account-api",
      "description": "prod"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    },
    {
      "apiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "Payment Tokens",
      "description": "CRUD for payment tokens"
    },
    {
      "name": "Buyers Management",
      "description": "CRUD for buyers"
    },
    {
      "name": "Manage Payment Tokens for Buyers",
      "description": "Manage payment tokens for buyers"
    },
    {
      "name": "Payment Options",
      "description": "Entity Payment Options"
    },
    {
      "name": "Card Recognition",
      "description": "Card Recognition"
    },
    {
      "name": "Network Tokens",
      "description": "Provision and manage network tokens"
    }
  ],
  "paths": {
    "/buyers/{buyer-id}/payment-tokens": {
      "get": {
        "tags": [
          "Manage Payment Tokens for Buyers"
        ],
        "summary": "Retrieve All Payment Tokens",
        "description": "Retrieves all of the payment tokens of a Buyer.",
        "operationId": "readBuyerPaymentTokens",
        "parameters": [
          {
            "name": "buyer-id",
            "in": "path",
            "description": "Unique identifier of the customer in your system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/BuyerId"
            }
          },
          {
            "name": "processing_entity_id",
            "in": "query",
            "description": "ID of processing entity.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            }
          },
          {
            "name": "payment_token_status",
            "in": "query",
            "description": "Filter by payment token status. When omitted, only active tokens are returned.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          }
        }
      }
    },
    "/buyers/{buyer-id}/payment-tokens/{payment-token-id}": {
      "get": {
        "tags": [
          "Manage Payment Tokens for Buyers"
        ],
        "summary": "Retrieve Single Payment Token",
        "description": "Retrieves a single payment token of a Buyer.",
        "operationId": "readBuyerPaymentTokenDetails",
        "parameters": [
          {
            "name": "buyer-id",
            "in": "path",
            "description": "Unique identifier of the customer in your system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/BuyerId"
            }
          },
          {
            "name": "payment-token-id",
            "in": "path",
            "description": "Represents a customer bank account in the Nuvei system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/PaymentTokenId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/buyers/{buyer-id}": {
      "get": {
        "tags": [
          "Buyers Management"
        ],
        "summary": "Retrieve Buyer Details",
        "description": "Retrieves the Buyer details.",
        "operationId": "readBuyerDetails",
        "parameters": [
          {
            "name": "buyer-id",
            "in": "path",
            "description": "Unique identifier of the customer in your system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/BuyerId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuyerResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Buyers Management"
        ],
        "summary": "Create or Override Buyer Details",
        "description": "Creates or overrides buyer details for subsequent transactions.",
        "operationId": "createOrUpdateBuyer",
        "parameters": [
          {
            "name": "buyer-id",
            "in": "path",
            "description": "Unique identifier of the customer in your system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/BuyerId"
            }
          }
        ],
        "requestBody": {
          "description": "An object containing buyer details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBuyerInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          }
        }
      }
    },
    "/payment-tokens": {
      "post": {
        "tags": [
          "Payment Tokens"
        ],
        "summary": "Create Payment Token",
        "description": "Tokenizes payment details for use in subsequent transactions. The same payment method can be tokenized a few times.",
        "operationId": "createPaymentToken",
        "requestBody": {
          "description": "An object containing payment method details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentTokenInput"
              },
              "examples": {
                "Card Payment Token": {
                  "value": {
                    "processingEntityId": "80aef199-b89a-4d59-ba0c-f2cd3c25d5cd",
                    "merchantReference": "MREF_6f06168d-ff6e-448b-8401-30051eb6b1af",
                    "paymentOption": {
                      "card": {
                        "cardHolderName": "John Doe",
                        "cardNumber": "4111111111111111",
                        "expirationMonth": "06",
                        "expirationYear": "2028",
                        "cvv": "591"
                      }
                    },
                    "buyerId": "john@doe.com",
                    "usageIntent": "recurring",
                    "custom": {
                      "reason": "New card"
                    }
                  }
                },
                "ACH Payment Token": {
                  "value": {
                    "processingEntityId": "80aef199-b89a-4d59-ba0c-f2cd3c25d5cd",
                    "merchantReference": "MREF_6f06168d-ff6e-448b-8401-30051eb6b1af",
                    "paymentOption": {
                      "alternativePaymentMethod": {
                        "name": "ACH",
                        "data": {
                          "accountNumber": "11345739548759",
                          "routingNumber": "847937857"
                        }
                      }
                    },
                    "buyerId": "john@doe.com",
                    "custom": {
                      "reason": "New ACH account"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenCreatedResponse"
                },
                "examples": {
                  "Card Payment Token": {
                    "summary": "Card Payment Token",
                    "value": {
                      "paymentToken": {
                        "paymentTokenId": "1eaf1356-a9a2-4a16-a0c1-290ba2265257",
                        "cccId": 1,
                        "paymentOption": {
                          "card": {
                            "cardHolderName": "John Doe",
                            "maskedCardNumber": "4***1111",
                            "bin": "411111",
                            "expirationMonth": "06",
                            "expirationYear": "2028",
                            "cardType": "Credit",
                            "cardBrand": "VISA"
                          }
                        }
                      },
                      "result": {
                        "status": "success"
                      }
                    }
                  },
                  "ACH Payment Token": {
                    "summary": "ACH Payment Token",
                    "value": {
                      "paymentToken": {
                        "paymentTokenId": "1eaf1356-a9a2-4a16-a0c1-290ba2265257",
                        "cccId": 573,
                        "paymentOption": {
                          "alternativePaymentMethod": {
                            "name": "ACH",
                            "data": {
                              "accountNumber": "11345739548759",
                              "routingNumber": "847937857"
                            }
                          }
                        }
                      },
                      "result": {
                        "status": "success"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenCreatedResponse"
                },
                "examples": {
                  "Invalid Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[paymentOption.card.expirationMonth] must match \"^(0[1-9]|1[0-2])$\""
                        }
                      }
                    }
                  },
                  "Missing Mandatory Field Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[processingEntityId] must not be null"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenCreatedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenCreatedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "summary": "Authorization error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenCreatedResponse"
                },
                "examples": {
                  "Internal Processing Error": {
                    "summary": "Internal processing error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7000.1000",
                          "reason": "Internal Processing Error."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payment-tokens/{payment-token-id}": {
      "get": {
        "tags": [
          "Payment Tokens"
        ],
        "summary": "Retrieve Payment Token Details",
        "description": "Retrieves the payment token details.",
        "operationId": "readPaymentToken",
        "parameters": [
          {
            "name": "payment-token-id",
            "in": "path",
            "description": "Represents a customer bank account in the Nuvei system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/PaymentTokenId"
            }
          },
          {
            "name": "processing_entity_id",
            "in": "query",
            "description": "ID of processing entity.",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentTokensResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Payment Tokens"
        ],
        "summary": "Update Payment Token Details",
        "description": "For cards, allows updating cardholder name and expiration of the token. Can link to a buyer as well.",
        "operationId": "updatePaymentToken",
        "parameters": [
          {
            "name": "payment-token-id",
            "in": "path",
            "description": "Represents a customer bank account in the Nuvei system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/PaymentTokenId"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePaymentTokenInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          }
        }
      }
    },
    "/temporary-payment-tokens": {
      "post": {
        "tags": [
          "Payment Tokens"
        ],
        "summary": "Tokenize Card Temporarily",
        "description": "Creates a temporary card token for the duration of the session.",
        "operationId": "createTemporaryPaymentToken",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemporaryPaymentTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryPaymentTokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryPaymentTokenResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryPaymentTokenResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryPaymentTokenResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryPaymentTokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/account-captures": {
      "post": {
        "tags": [
          "Payment Tokens"
        ],
        "summary": "Capture Account Details",
        "description": "Tokenizes payment details by capturing account details.",
        "operationId": "postAccountCaptures",
        "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": {
          "description": "An object containing payment method details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountCaptureRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCaptureResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCaptureResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCaptureResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCaptureResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountCaptureResponse"
                }
              }
            }
          }
        }
      }
    },
    "/payment-options": {
      "get": {
        "tags": [
          "Payment Options"
        ],
        "summary": "Retrieve Payment Option Details",
        "description": "Retrieves the payment option details per processing entity.",
        "operationId": "readEntityPaymentOptions",
        "parameters": [
          {
            "name": "processing_entity_id",
            "in": "query",
            "description": "ID of processing entity.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            }
          },
          {
            "name": "country_code",
            "in": "query",
            "description": "The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes).",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "include_optional_fields",
            "in": "query",
            "description": "Include optional fields in the response",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "compact_response",
            "in": "query",
            "description": "Provide a compact response with only name, cccId and processing gateway",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentOptionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          }
        }
      }
    },
    "/card-details": {
      "post": {
        "tags": [
          "Card Recognition"
        ],
        "summary": "Retrieve Additional Credit Card Details",
        "description": "Retrieves additional details of a credit card.",
        "operationId": "postCardDetails",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardDetailsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDetailsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResultWrapped"
                }
              }
            }
          }
        }
      }
    },
    "/network-tokens": {
      "post": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Provision Network Token",
        "description": "Provision a network token via Visa or MDES.",
        "operationId": "provisionNetworkToken",
        "requestBody": {
          "description": "An object containing payment method details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkTokenInput"
              },
              "examples": {
                "Card Payment Token": {
                  "value": {
                    "processingEntityId": "80aef199-b89a-4d59-ba0c-f2cd3c25d5cd",
                    "paymentOption": {
                      "card": {
                        "cardNumber": "4111111111111111",
                        "expirationMonth": "06",
                        "expirationYear": "2028",
                        "cvv": "591"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Invalid Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[paymentOption.card.expirationMonth] must match \"^(0[1-9]|1[0-2])$\""
                        }
                      }
                    }
                  },
                  "Missing Mandatory Field Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[processingEntityId] must not be null"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "summary": "Authorization error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Internal Processing Error": {
                    "summary": "Internal processing error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7000.1000",
                          "reason": "Internal Processing Error."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/network-tokens/cryptograms": {
      "post": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Provision Network Cryptogram",
        "description": "Provision a network cryptogram via Visa or MDES.",
        "operationId": "provisionNetworkCryptogram",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkTokenCryptogramInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptogramResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptogramResponse"
                },
                "examples": {
                  "Invalid Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[paymentOption.card.expirationMonth] must match \"^(0[1-9]|1[0-2])$\""
                        }
                      }
                    }
                  },
                  "Missing Mandatory Field Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[processingEntityId] must not be null"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptogramResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptogramResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "summary": "Authorization error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptogramResponse"
                },
                "examples": {
                  "Internal Processing Error": {
                    "summary": "Internal processing error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7000.1000",
                          "reason": "Internal Processing Error."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/network-tokens/{payment-token-id}": {
      "get": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Get Network Token Information",
        "description": "Retrieves network token information.",
        "operationId": "readNetworkToken",
        "parameters": [
          {
            "name": "payment-token-id",
            "in": "path",
            "description": "Represents a customer bank account in the Nuvei system.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/PaymentTokenId"
            }
          },
          {
            "name": "processing_entity_id",
            "in": "query",
            "description": "ID of processing entity.",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Invalid Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[paymentOption.card.expirationMonth] must match \"^(0[1-9]|1[0-2])$\""
                        }
                      }
                    }
                  },
                  "Missing Mandatory Field Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[processingEntityId] must not be null"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "summary": "Authorization error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkTokenProvisionedResponse"
                },
                "examples": {
                  "Internal Processing Error": {
                    "summary": "Internal processing error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7000.1000",
                          "reason": "Internal Processing Error."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/network-tokens/deactivate": {
      "patch": {
        "tags": [
          "Network Tokens"
        ],
        "summary": "Deactivate a network token",
        "description": "Deactivate a network token via Visa or MDES.",
        "operationId": "deactivateNetworkToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactivateNetworkTokenInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateResponse"
                },
                "examples": {
                  "Invalid Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[paymentOption.card.expirationMonth] must match \"^(0[1-9]|1[0-2])$\""
                        }
                      }
                    }
                  },
                  "Missing Mandatory Field Value": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "5000.1000",
                          "reason": "[processingEntityId] must not be null"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateResponse"
                },
                "examples": {
                  "Authorization Error": {
                    "summary": "Authorization error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7300.3000",
                          "reason": "Authorization error."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateResponse"
                },
                "examples": {
                  "Internal Processing Error": {
                    "summary": "Internal processing error",
                    "value": {
                      "result": {
                        "status": "error",
                        "errors": {
                          "code": "7000.1000",
                          "reason": "Internal Processing Error."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CreateBuyerInput": {
        "title": "Buyer Details Request",
        "required": [
          "buyerDetails",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BasicBuyerDetails"
          }
        }
      },
      "Buyer": {
        "title": "Buyer",
        "type": "object",
        "properties": {
          "buyerId": {
            "$ref": "#/components/schemas/BuyerId"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BasicBuyerDetails"
          }
        }
      },
      "BuyerResponse": {
        "title": "Buyer API Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "buyer": {
            "$ref": "#/components/schemas/Buyer"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "BuyerId": {
        "maxLength": 255,
        "type": "string",
        "example": "buyer@wherever.com"
      },
      "PaymentTokenResponse": {
        "title": "Payment Token Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentToken": {
            "$ref": "#/components/schemas/PaymentToken"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "PaymentTokenCreatedResponse": {
        "title": "Payment Token Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentToken": {
            "$ref": "#/components/schemas/BasePaymentToken"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "NetworkTokenProvisionedResponse": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionNT"
          },
          "tokenRequestorId": {
            "$ref": "#/components/schemas/TokenRequestorId"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "NetworkTokenNT": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "type": "string"
          },
          "tokenNumber": {
            "$ref": "#/components/schemas/Token"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/ExpirationYear"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/ExpirationMonth"
          },
          "tokenStatus": {
            "$ref": "#/components/schemas/TokenStatus"
          },
          "tokenUniqueReference": {
            "$ref": "#/components/schemas/TokenUniqueReference"
          },
          "paymentAccountReference": {
            "$ref": "#/components/schemas/PaymentAccountReference"
          },
          "tokenAssuranceLevel": {
            "$ref": "#/components/schemas/TokenAssuranceLevel"
          },
          "card": {
            "$ref": "#/components/schemas/CardNTIn"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          }
        }
      },
      "PaymentOptionNT": {
        "type": "object",
        "properties": {
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenNT"
          }
        }
      },
      "CardNTIn": {
        "title": "card",
        "type": "object",
        "properties": {
          "last4Digits": {
            "$ref": "#/components/schemas/Last4Digits"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/ExpirationYear"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/ExpirationMonth"
          },
          "cardUpdated": {
            "$ref": "#/components/schemas/CardUpdated"
          },
          "updateReason": {
            "$ref": "#/components/schemas/UpdateReason"
          },
          "updateDate": {
            "$ref": "#/components/schemas/UpdateDate"
          }
        }
      },
      "CryptogramResponse": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionNTCR"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "DeactivateResponse": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionDeactivate"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "PaymentOptionNTCR": {
        "type": "object",
        "properties": {
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenNTCR"
          }
        }
      },
      "PaymentOptionDeactivate": {
        "type": "object",
        "properties": {
          "networkToken": {
            "$ref": "#/components/schemas/NetworkTokenDeactivate"
          }
        }
      },
      "NetworkTokenNTCR": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "type": "string"
          },
          "tokenNumber": {
            "$ref": "#/components/schemas/Token"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/ExpirationYear"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/ExpirationMonth"
          },
          "tokenStatus": {
            "$ref": "#/components/schemas/TokenStatus"
          },
          "tokenUniqueReference": {
            "$ref": "#/components/schemas/TokenUniqueReference"
          },
          "paymentAccountReference": {
            "$ref": "#/components/schemas/PaymentAccountReference"
          },
          "tokenAssuranceLevel": {
            "$ref": "#/components/schemas/TokenAssuranceLevel"
          },
          "cryptogram": {
            "type": "string"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          }
        }
      },
      "NetworkTokenDeactivate": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "type": "string"
          },
          "tokenStatus": {
            "$ref": "#/components/schemas/TokenStatus"
          },
          "tokenUniqueReference": {
            "$ref": "#/components/schemas/TokenUniqueReference"
          },
          "paymentAccountReference": {
            "$ref": "#/components/schemas/PaymentAccountReference"
          }
        }
      },
      "TokenUniqueReference": {
        "maxLength": 64,
        "type": "string"
      },
      "TokenRequestorId": {
        "maxLength": 15,
        "type": "string"
      },
      "Token": {
        "maxLength": 29,
        "type": "string"
      },
      "TokenStatus": {
        "maxLength": 40,
        "type": "string"
      },
      "PaymentAccountReference": {
        "type": "string"
      },
      "Last4Digits": {
        "maxLength": 4,
        "type": "string"
      },
      "ExpirationYear": {
        "type": "string"
      },
      "ExpirationMonth": {
        "type": "string"
      },
      "UpdateReason": {
        "type": "string"
      },
      "UpdateDate": {
        "type": "string"
      },
      "CardUpdated": {
        "type": "string"
      },
      "PaymentTokensResponse": {
        "title": "Payment Tokens Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "paymentTokens": {
            "type": "array",
            "items": {
              "title": "Card Payment Token",
              "required": [
                "paymentOption",
                "paymentTokenId",
                "processingEntityId"
              ],
              "type": "object",
              "properties": {
                "paymentTokenId": {
                  "$ref": "#/components/schemas/PaymentTokenId"
                },
                "cccId": {
                  "$ref": "#/components/schemas/CccId"
                },
                "displayName": {
                  "type": "string",
                  "description": "Payment Token Display Name"
                },
                "paymentOption": {
                  "$ref": "#/components/schemas/CardPciDescopedWrapped"
                },
                "status": {
                  "$ref": "#/components/schemas/PaymentTokenStatus"
                },
                "buyerId": {
                  "$ref": "#/components/schemas/BuyerId"
                },
                "merchantReference": {
                  "$ref": "#/components/schemas/MerchantRef"
                },
                "processingEntityId": {
                  "$ref": "#/components/schemas/EntityId"
                },
                "usageIntent": {
                  "$ref": "#/components/schemas/TokenUsage"
                }
              }
            }
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "PaymentTokenId": {
        "title": "Payment Token ID",
        "type": "string",
        "example": "1eaf1356-a9a2-4a16-a0c1-290ba2265257"
      },
      "PaymentTokenStatus": {
        "type": "string",
        "description": "The status of the payment token.",
        "enum": [
          "active",
          "suspended",
          "disabled"
        ]
      },
      "TemporaryPaymentTokenRequest": {
        "title": "Temporary Payment Token Request",
        "required": [
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionTemporaryTokenCardInput"
          },
          "custom": {
            "$ref": "#/components/schemas/Custom"
          }
        }
      },
      "TemporaryPaymentTokenResponse": {
        "title": "Temporary Payment Token Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentToken"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "PaymentTokenInput": {
        "title": "Payment Token Request",
        "required": [
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/CardWrapped"
          },
          "buyerId": {
            "$ref": "#/components/schemas/BuyerId"
          },
          "usageIntent": {
            "$ref": "#/components/schemas/TokenUsage"
          },
          "custom": {
            "$ref": "#/components/schemas/Custom"
          }
        }
      },
      "UrlDetails": {
        "title": "urlDetails",
        "type": "object",
        "properties": {
          "webhookUrl": {
            "type": "string",
            "description": "The URL to which notifications for outcome of the financial transactions will be sent"
          },
          "successUrl": {
            "type": "string",
            "description": "The URL to which the end user will be redirected in case of a successful transaction with Alternative Payment Method"
          },
          "failureUrl": {
            "type": "string",
            "description": "The URL to which the end user will be redirected in case of an unsuccessful transaction with Alternative Payment Method"
          },
          "pendingUrl": {
            "type": "string",
            "description": "The URL to which the end user will be redirected in case of a pending transaction with Alternative Payment Method"
          },
          "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."
          }
        }
      },
      "AccountCaptureRequest": {
        "title": "Payment Token Request",
        "required": [
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionAccountCapture"
          },
          "buyerDetails": {
            "$ref": "#/components/schemas/BuyerDetails"
          },
          "deviceDetails": {
            "$ref": "#/components/schemas/DeviceDetails"
          },
          "custom": {
            "$ref": "#/components/schemas/Custom"
          },
          "urlDetails": {
            "$ref": "#/components/schemas/UrlDetails"
          }
        }
      },
      "PaymentOptionAccountCapture": {
        "title": "PaymentOptionAccountCapture",
        "required": [
          "alternativePaymentMethod"
        ],
        "type": "object",
        "properties": {
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmDetails"
          }
        }
      },
      "AccountCaptureResponse": {
        "title": "Account Capture Response",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "accountCaptureId": {
            "type": "string"
          },
          "redirectUrl": {
            "maxLength": 2000,
            "type": "string"
          },
          "result": {
            "$ref": "#/components/schemas/AccountCaptureResultOutput"
          }
        }
      },
      "PaymentToken": {
        "title": "Card Payment Token",
        "allOf": [
          {
            "$ref": "#/components/schemas/BasePaymentToken"
          },
          {
            "required": [
              "processingEntityId"
            ],
            "type": "object",
            "properties": {
              "buyerId": {
                "$ref": "#/components/schemas/BuyerId"
              },
              "merchantReference": {
                "$ref": "#/components/schemas/MerchantRef"
              },
              "processingEntityId": {
                "$ref": "#/components/schemas/EntityId"
              },
              "usageIntent": {
                "$ref": "#/components/schemas/TokenUsage"
              }
            }
          }
        ]
      },
      "BasePaymentToken": {
        "title": "Card Payment Token",
        "required": [
          "paymentOption",
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/PaymentTokenId"
          },
          "cccId": {
            "$ref": "#/components/schemas/CccId"
          },
          "displayName": {
            "type": "string",
            "description": "Payment Token Display Name"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/CardPciDescopedWrapped"
          },
          "status": {
            "$ref": "#/components/schemas/PaymentTokenStatus"
          }
        }
      },
      "TemporaryPaymentToken": {
        "title": "Temporary Card Payment Token",
        "required": [
          "paymentOption",
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/PaymentTokenId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/TemporaryPaymentTokenCardPciDescopedWrapped"
          }
        }
      },
      "UpdatePaymentTokenInput": {
        "title": "Update Card Token Request",
        "required": [
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/UpdateCardInputWrapped"
          },
          "buyerId": {
            "$ref": "#/components/schemas/BuyerId"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          },
          "usageIntent": {
            "$ref": "#/components/schemas/TokenUsage"
          }
        }
      },
      "ApmDetails": {
        "title": "ApmDetails",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "example": "ACH"
          },
          "data": {
            "$ref": "#/components/schemas/MaskedKeyValuePair"
          }
        }
      },
      "ApmDetailsUpdate": {
        "title": "ApmDetailsUpdate",
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/MaskedKeyValuePair"
          }
        }
      },
      "UpdateCardInputWrapped": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/UpdateCardInput"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmDetailsUpdate"
          }
        }
      },
      "UpdateCardInput": {
        "title": "Update Card Token Request",
        "type": "object",
        "properties": {
          "cardHolderName": {
            "$ref": "#/components/schemas/CardHolderName"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/CardExpirationMonth"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/CardExpirationYear"
          }
        }
      },
      "TemporaryPaymentTokenInput": {
        "title": "TemporaryPaymentToken",
        "required": [
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/PaymentTokenId"
          }
        }
      },
      "CardWrapped": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmDetails"
          },
          "temporaryPaymentToken": {
            "$ref": "#/components/schemas/TemporaryPaymentTokenInput"
          }
        }
      },
      "PaymentOptionTemporaryTokenCardInput": {
        "required": [
          "card"
        ],
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/TemporaryTokenCardInput"
          }
        }
      },
      "Card": {
        "title": "Card Details",
        "required": [
          "cardNumber",
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardHolderName": {
            "$ref": "#/components/schemas/CardHolderName"
          },
          "cardNumber": {
            "$ref": "#/components/schemas/CardNumber"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/CardExpirationMonth"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/CardExpirationYear"
          },
          "cvv": {
            "$ref": "#/components/schemas/CVV"
          }
        }
      },
      "TemporaryTokenCardInput": {
        "title": "Temporary Token Card Input",
        "allOf": [
          {
            "$ref": "#/components/schemas/Card"
          },
          {
            "type": "object",
            "properties": {
              "selectedBrand": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CardNT": {
        "title": "Card Details for Network Token",
        "required": [
          "cardNumber",
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardNumber": {
            "$ref": "#/components/schemas/CardNumber"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/CardExpirationMonth"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/CardExpirationYear"
          },
          "cvv": {
            "$ref": "#/components/schemas/CVV"
          },
          "merchantReference": {
            "$ref": "#/components/schemas/MerchantRef"
          }
        }
      },
      "TemporaryPaymentTokenCardPciDescopedWrapped": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardPciDescopedTemporaryToken"
          }
        }
      },
      "CardPciDescopedWrapped": {
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardPciDescoped"
          },
          "alternativePaymentMethod": {
            "$ref": "#/components/schemas/ApmDetails"
          }
        }
      },
      "CardPciDescoped": {
        "title": "Card PCI Descoped Details",
        "required": [
          "expirationMonth",
          "expirationYear"
        ],
        "type": "object",
        "properties": {
          "cardHolderName": {
            "$ref": "#/components/schemas/CardHolderName"
          },
          "maskedCardNumber": {
            "$ref": "#/components/schemas/CardNumberMasked"
          },
          "bin": {
            "$ref": "#/components/schemas/CardBIN"
          },
          "expirationMonth": {
            "$ref": "#/components/schemas/CardExpirationMonth"
          },
          "expirationYear": {
            "$ref": "#/components/schemas/CardExpirationYear"
          },
          "cardType": {
            "$ref": "#/components/schemas/CardType"
          },
          "cardBrand": {
            "$ref": "#/components/schemas/CardBrand"
          },
          "secondaryBrand": {
            "$ref": "#/components/schemas/CardBrand"
          },
          "isDualBranded": {
            "type": "boolean"
          },
          "lastBrand": {
            "$ref": "#/components/schemas/CardBrand"
          },
          "cardProduct": {
            "type": "string"
          },
          "cardProgram": {
            "type": "string"
          },
          "cardProductType": {
            "type": "string"
          },
          "isPrepaid": {
            "type": "boolean",
            "description": "Indicates if the card is prepaid or not."
          },
          "issuerCountry": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "issuerBankName": {
            "type": "string"
          },
          "isVirtual": {
            "type": "boolean"
          },
          "isDynamicCurrencyConversionSupported": {
            "type": "boolean"
          }
        }
      },
      "CardPciDescopedTemporaryToken": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CardPciDescoped"
          },
          {
            "type": "object",
            "properties": {
              "selectedBrand": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CardNumber": {
        "title": "Card Number",
        "maxLength": 20,
        "minLength": 6,
        "type": "string",
        "description": "The full credit card number.",
        "example": "5113981660016597"
      },
      "CardNumberMasked": {
        "maxLength": 20,
        "type": "string",
        "description": "The masked credit card number.",
        "example": "5***6597"
      },
      "CardBIN": {
        "maxLength": 8,
        "type": "string",
        "description": "The first six or eight digits from the credit card number for identifying the processing bank. The rest of the number is not displayed.",
        "example": "546221"
      },
      "CardHolderName": {
        "maxLength": 70,
        "type": "string",
        "description": "The cardholder name.",
        "example": "Jada Pinkett"
      },
      "CardExpirationMonth": {
        "title": "Card Expiration - Month",
        "pattern": "^(0[1-9]|1[0-2])$",
        "type": "string",
        "description": "The card expiration month.",
        "example": "06"
      },
      "CardExpirationYear": {
        "title": "Card Expiration - Year",
        "pattern": "^(\\d{4}|\\d{2})$",
        "type": "string",
        "description": "The card expiration year.",
        "example": "2022"
      },
      "CardBrand": {
        "type": "string",
        "description": "The card brand used in the transaction."
      },
      "CardType": {
        "type": "string",
        "description": "The type of card used in the transaction.",
        "enum": [
          "Credit",
          "Debit"
        ]
      },
      "CccId": {
        "title": "Credit Card Company ID",
        "type": "integer",
        "description": "ID of card in the Gateway. Values: 1 = VISA | 2 = MasterCard | 3 = Amex | 4 = Diners | 5 = JCB | 6 = Discover",
        "example": 1
      },
      "CVV": {
        "maxLength": 4,
        "type": "string",
        "description": "The CVV/CVC security code.",
        "example": "591"
      },
      "ApiResultWrapped": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        }
      },
      "ApiResultOutput": {
        "title": "Api Result",
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "success",
              "error"
            ]
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "AccountCaptureResultOutput": {
        "title": "Api Result",
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "redirect",
              "error",
              "pending"
            ]
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "ResultError": {
        "title": "Result Error",
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 11,
            "type": "string",
            "description": "If an error occurred on the request side, an error code is returned in this parameter.",
            "example": "7000.1000"
          },
          "reason": {
            "maxLength": 400,
            "type": "string",
            "description": "If an error occurred on the request side, then an error reason is returned in this parameter.",
            "example": "Unexpected error"
          },
          "reference": {
            "maxLength": 400,
            "type": "string",
            "description": "Internal reference for troubleshooting"
          }
        }
      },
      "Custom": {
        "title": "Key-Value",
        "type": "object",
        "example": {
          "hello": "world"
        }
      },
      "EntityId": {
        "title": "Entity ID",
        "type": "string",
        "description": "Processing `entityId` provided by Nuvei.",
        "format": "uuid",
        "example": "80aef199-b89a-4d59-ba0c-f2cd3c25d5cd"
      },
      "MerchantRef": {
        "title": "Merchant Reference for Payment Token",
        "maxLength": 50,
        "type": "string",
        "description": "Merchant Reference for a business entity (token, subscription, etc.)",
        "example": "MREF_6f06168d-ff6e-448b-8401-30051eb6b1af"
      },
      "TokenUsage": {
        "title": "declared MIT usage for the payment token",
        "type": "string",
        "enum": [
          "recurring",
          "unscheduled"
        ]
      },
      "FieldValue": {
        "title": "FieldValue",
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 50,
            "type": "string"
          },
          "displayName": {
            "maxLength": 100,
            "type": "string"
          },
          "mandatoryFields": {
            "type": "array",
            "items": {
              "maxLength": 100,
              "type": "string"
            }
          }
        },
        "description": "Representation of a single value for LIST dataType fields"
      },
      "KeyboardType": {
        "title": "KeyboardType",
        "type": "string",
        "default": "any",
        "enum": [
          "any",
          "tel",
          "number",
          "email",
          "text",
          "password",
          "date"
        ]
      },
      "PaymentOptionInputField": {
        "title": "Payment Option Input Field",
        "required": [
          "dataType",
          "isMandatory",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "type": "string",
            "description": "The name of the input parameter as expected by REST API methods"
          },
          "dataType": {
            "type": "string",
            "description": "The data type of the value",
            "enum": [
              "INTEGER",
              "DECIMAL",
              "STRING",
              "DATE",
              "BOOLEAN",
              "OBJECT",
              "LIST"
            ]
          },
          "isMandatory": {
            "type": "boolean",
            "description": "Indication if the field is required for the Payment Option"
          },
          "minimumLength": {
            "type": "integer",
            "description": "The minimum supported length of the provided value. Valid for STRING data type"
          },
          "maximumLength": {
            "type": "integer",
            "description": "The maximum supported length of the provided value. Valid for STRING data type"
          },
          "keyboardType": {
            "$ref": "#/components/schemas/KeyboardType"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldValue"
            }
          }
        },
        "description": "Defines an input field for a Payment Option"
      },
      "PaymentOptionInputFields": {
        "type": "array",
        "description": "List of input fields for a Payment Option",
        "items": {
          "$ref": "#/components/schemas/PaymentOptionInputField"
        }
      },
      "CountryCurrencyRestriction": {
        "type": "object",
        "properties": {
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": ""
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": ""
          },
          "minimumAmount": {
            "type": "number",
            "description": ""
          },
          "maximumAmount": {
            "type": "number",
            "description": ""
          }
        },
        "description": ""
      },
      "CountryCurrencyRestrictions": {
        "type": "array",
        "description": "",
        "items": {
          "$ref": "#/components/schemas/CountryCurrencyRestriction"
        }
      },
      "ProcessingGateway": {
        "type": "string",
        "enum": [
          "APM",
          "card"
        ]
      },
      "PaymentOption": {
        "required": [
          "name",
          "supportsFieldsRecovery"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 50,
            "type": "string",
            "description": ""
          },
          "cccId": {
            "type": "integer"
          },
          "processingGateway": {
            "$ref": "#/components/schemas/ProcessingGateway"
          },
          "isDirect": {
            "type": "boolean",
            "description": "Indication if the Payment Option supports direct flow",
            "default": false
          },
          "supportsFieldsRecovery": {
            "type": "boolean",
            "description": "Indication if the Payment Option supports fields recovery functionality",
            "default": false
          },
          "fields": {
            "$ref": "#/components/schemas/PaymentOptionInputFields"
          },
          "restrictions": {
            "$ref": "#/components/schemas/CountryCurrencyRestrictions"
          },
          "logoUrl": {
            "type": "string"
          },
          "launchInBrowser": {
            "type": "boolean"
          }
        },
        "description": ""
      },
      "PaymentOptions": {
        "type": "array",
        "description": "",
        "items": {
          "$ref": "#/components/schemas/PaymentOption"
        }
      },
      "PaymentOptionsResponse": {
        "title": "Payment Options Response",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "paymentOptions": {
                "$ref": "#/components/schemas/PaymentOptions"
              }
            }
          },
          {
            "$ref": "#/components/schemas/ApiResultWrapped"
          }
        ]
      },
      "CardDetailsResponse": {
        "title": "CardDetailsResponse",
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardRecognitionDetails"
          },
          "result": {
            "$ref": "#/components/schemas/ApiResultOutput"
          }
        },
        "description": "Card Details Response"
      },
      "CardDetailsRequest": {
        "title": "Card Details Request",
        "required": [
          "cardNumber",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "cardNumber": {
            "$ref": "#/components/schemas/CardNumber"
          }
        }
      },
      "NetworkTokenInput": {
        "title": "Network Token Request",
        "required": [
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionNetworkToken"
          }
        }
      },
      "NetworkTokenCryptogramInput": {
        "title": "Network Token Cryptogram Request",
        "required": [
          "paymentOption",
          "processingEntityId",
          "transactionType"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionCr"
          },
          "transactionType": {
            "type": "string",
            "description": "Td.",
            "enum": [
              "ECOM",
              "AFT"
            ]
          }
        }
      },
      "DeactivateNetworkTokenInput": {
        "title": "Deactivate Network Token Input",
        "required": [
          "paymentOption",
          "processingEntityId"
        ],
        "type": "object",
        "properties": {
          "processingEntityId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "paymentOption": {
            "$ref": "#/components/schemas/PaymentOptionCr"
          }
        }
      },
      "PaymentTokenInCr": {
        "title": "PaymentToken",
        "required": [
          "paymentTokenId"
        ],
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/PaymentTokenId"
          }
        }
      },
      "PaymentOptionCr": {
        "title": "PaymentOptionCr",
        "type": "object",
        "properties": {
          "paymentToken": {
            "$ref": "#/components/schemas/PaymentTokenInCr"
          }
        }
      },
      "PaymentOptionNetworkToken": {
        "title": "PaymentOptionNetworkToken",
        "type": "object",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/CardNT"
          },
          "paymentToken": {
            "$ref": "#/components/schemas/TokenInput"
          }
        }
      },
      "TokenInput": {
        "type": "object",
        "properties": {
          "paymentTokenId": {
            "$ref": "#/components/schemas/PaymentTokenId"
          }
        }
      },
      "TokenAssuranceLevel": {
        "type": "string"
      },
      "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"
          }
        }
      },
      "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"
          }
        ]
      },
      "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"
        ]
      },
      "MaskedKeyValuePair": {
        "title": "MaskedKeyValuePair",
        "type": "object",
        "example": {
          "accountNumber": "11345739548759",
          "routingNumber": "847937857"
        }
      },
      "CardRecognitionDetails": {
        "title": "CardRecognitionDetails",
        "type": "object",
        "properties": {
          "maskedCardNumber": {
            "type": "string"
          },
          "last4Digits": {
            "maxLength": 4,
            "minLength": 4,
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "brands": {
            "$ref": "#/components/schemas/CardBrands"
          },
          "isPrepaid": {
            "type": "boolean"
          },
          "isReloadableCard": {
            "type": "boolean"
          },
          "cardPayoutSupportCode": {
            "type": "integer"
          },
          "product": {
            "type": "string"
          },
          "program": {
            "type": "string"
          },
          "dccAllowed": {
            "type": "boolean"
          },
          "issuerCountry": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "issuerBankName": {
            "type": "string"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          }
        },
        "description": "Card Details"
      },
      "CardBrands": {
        "title": "CardBrands",
        "required": [
          "main"
        ],
        "type": "object",
        "properties": {
          "main": {
            "type": "string"
          },
          "secondary": {
            "type": "string"
          }
        }
      }
    },
    "responses": {
      "OkResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      },
      "BadRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiResultWrapped"
            }
          }
        }
      }
    },
    "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"
      },
      "buyer-id-path": {
        "name": "buyer-id",
        "in": "path",
        "description": "Unique identifier of the customer in your system.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/BuyerId"
        }
      },
      "payment-token-id-path": {
        "name": "payment-token-id",
        "in": "path",
        "description": "Represents a customer bank account in the Nuvei system.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/PaymentTokenId"
        }
      },
      "merchant-ref-path": {
        "name": "merchant-reference",
        "in": "path",
        "description": "The token name in your system.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/MerchantRef"
        }
      },
      "entity-id-path": {
        "name": "entity-id",
        "in": "path",
        "description": "Processing `entityId` provided by Nuvei.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/EntityId"
        }
      },
      "payment-option-name": {
        "name": "payment-option-name",
        "in": "path",
        "description": "Payment Option Name",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string"
        }
      },
      "buyer_id_search_query_string": {
        "name": "buyer_id_prefix",
        "in": "query",
        "required": true,
        "style": "form",
        "explode": true
      },
      "size_query_string": {
        "name": "size",
        "in": "query",
        "description": "Page size for pagination.",
        "required": false,
        "style": "form",
        "explode": true
      },
      "offset_query_string": {
        "name": "offset",
        "in": "query",
        "description": "Page number for pagination.",
        "required": false,
        "style": "form",
        "explode": true
      },
      "merchant_ref_query_string": {
        "name": "merchant_reference",
        "in": "query",
        "description": "Merchant Reference for a business entity (token, subscription, etc.).",
        "required": true,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/MerchantRef"
        }
      },
      "processing_entity_id_query_string": {
        "name": "processing_entity_id",
        "in": "query",
        "description": "ID of processing entity.",
        "required": true,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/EntityId"
        }
      },
      "processing_entity_id_optional_query_string": {
        "name": "processing_entity_id",
        "in": "query",
        "description": "ID of processing entity.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "$ref": "#/components/schemas/EntityId"
        }
      },
      "payment_token_status": {
        "name": "payment_token_status",
        "in": "query",
        "description": "Filter by payment token status. When omitted, only active tokens are returned.",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "card-number": {
        "name": "card-number",
        "in": "path",
        "description": "Card Number",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/CardNumber"
        }
      },
      "country_code_optional_query_string": {
        "name": "country_code",
        "in": "query",
        "description": "The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes).",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "maxLength": 2,
          "minLength": 2,
          "type": "string"
        }
      },
      "currency_optional_query_string": {
        "name": "currency",
        "in": "query",
        "description": "The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes).",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "maxLength": 3,
          "minLength": 3,
          "type": "string"
        }
      },
      "include_optional_fields_optional_query_string": {
        "name": "include_optional_fields",
        "in": "query",
        "description": "Include optional fields in the response",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "compact_response_optional_query_string": {
        "name": "compact_response",
        "in": "query",
        "description": "Provide a compact response with only name, cccId and processing gateway",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "type": "boolean",
          "default": false
        }
      }
    },
    "requestBodies": {
      "upoCreateBody": {
        "description": "Payment Token creation Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentTokenInput"
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  }
}