{
  "service" : {
    "serviceId" : "open-api",
    "name" : "Cryptoments Open API v2",
    "apiServerUrl" : "http://localhost:8080",
    "version" : "",
    "introduction" : null,
    "auth" : {
      "type" : "bearer",
      "headerKey" : "Authorization",
      "value" : "Bearer {{token}}",
      "description" : null,
      "in" : "header",
      "scheme" : "",
      "bearerFormat" : ""
    },
    "headers" : null
  },
  "apis" : [ {
    "id" : "getAllTokens",
    "name" : "전체 토큰 조회",
    "className" : "",
    "description" : "모든 지원 토큰 정보 조회.\n파트너가 활성화한 모든 토큰의 상세 정보를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.TokenResponse",
    "returnDescription" : "토큰 상세 정보 목록",
    "urlMapping" : "/widgets/api/tokens",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "info_getChains",
    "name" : "지원 체인 조회",
    "className" : "",
    "description" : "지원 체인 목록 조회.\n파트너가 활성화한 블록체인 네트워크 목록을 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.ChainResponse",
    "returnDescription" : "체인 정보 목록",
    "urlMapping" : "/widgets/api/chains",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getExchangeRates",
    "name" : "환율 조회",
    "className" : "",
    "description" : "환율 정보 조회.\nUSD/KRW 기준 환율 정보를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.ExchangeRateResponse",
    "returnDescription" : "환율 정보",
    "urlMapping" : "/widgets/api/exchange-rates",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getTokensByChain",
    "name" : "체인별 토큰 조회",
    "className" : "",
    "description" : "특정 체인의 지원 토큰 조회.\n지정한 체인에서 파트너가 사용 가능한 토큰 심볼 목록을 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "chainType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "java.lang.String",
    "returnDescription" : "통화 심볼 목록",
    "urlMapping" : "/widgets/api/chains/{chainType}/tokens",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "convertKrwToUsdt",
    "name" : "KRW→USDT 환산",
    "className" : "",
    "description" : "KRW 금액을 USDT로 환산합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "amount",
      "type" : "BigDecimal",
      "classPath" : "java.math.BigDecimal",
      "description" : "변환할 KRW 금액",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyConversionResponse",
    "returnDescription" : "환산 결과 (KRW → USDT)",
    "urlMapping" : "/api/v1/currency-prices/convert/krw-to-usdt",
    "method" : "GET",
    "responseStatus" : {
      "200" : "환산 성공",
      "404" : "USDT 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "convertToKrw",
    "name" : "토큰→KRW 환산",
    "className" : "",
    "description" : "지정 토큰 금액을 KRW로 환산합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "토큰 심볼 (예: USDT, ETH)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "amount",
      "type" : "BigDecimal",
      "classPath" : "java.math.BigDecimal",
      "description" : "변환할 토큰 금액",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyConversionResponse",
    "returnDescription" : "환산 결과 (토큰 → KRW)",
    "urlMapping" : "/api/v1/currency-prices/convert/{currencyType}/to-krw",
    "method" : "GET",
    "responseStatus" : {
      "200" : "환산 성공",
      "404" : "토큰 또는 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "convertToUsd",
    "name" : "토큰→USD 환산",
    "className" : "",
    "description" : "지정 토큰 금액을 USD로 환산합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "토큰 심볼 (예: USDT, ETH)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "amount",
      "type" : "BigDecimal",
      "classPath" : "java.math.BigDecimal",
      "description" : "변환할 토큰 금액",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyConversionResponse",
    "returnDescription" : "환산 결과 (토큰 → USD)",
    "urlMapping" : "/api/v1/currency-prices/convert/{currencyType}/to-usd",
    "method" : "GET",
    "responseStatus" : {
      "200" : "환산 성공",
      "404" : "토큰 또는 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "convertUsdtToKrw",
    "name" : "USDT→KRW 환산",
    "className" : "",
    "description" : "USDT 금액을 KRW로 환산합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "amount",
      "type" : "BigDecimal",
      "classPath" : "java.math.BigDecimal",
      "description" : "변환할 USDT 금액",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyConversionResponse",
    "returnDescription" : "환산 결과 (USDT → KRW)",
    "urlMapping" : "/api/v1/currency-prices/convert/usdt-to-krw",
    "method" : "GET",
    "responseStatus" : {
      "200" : "환산 성공",
      "404" : "USDT 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getAllPrices",
    "name" : "전체 시세 조회",
    "className" : "",
    "description" : "전체 토큰의 현재 시세를 조회합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
    "returnDescription" : "전체 토큰 시세 목록 (KRW/USD)",
    "urlMapping" : "/api/v1/currency-prices",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPrice",
    "name" : "토큰 시세 조회",
    "className" : "",
    "description" : "특정 토큰의 현재 시세를 조회합니다 (기본 KRW).",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "토큰 심볼 (예: USDT, ETH)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
    "returnDescription" : "토큰 시세 (KRW/USD)",
    "urlMapping" : "/api/v1/currency-prices/{currencyType}",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "토큰 또는 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPriceKrw",
    "name" : "토큰 KRW 시세 조회",
    "className" : "",
    "description" : "특정 토큰의 KRW 시세를 조회합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "토큰 심볼 (예: USDT, ETH)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
    "returnDescription" : "토큰 KRW 시세",
    "urlMapping" : "/api/v1/currency-prices/{currencyType}/krw",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "토큰 또는 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPriceUsd",
    "name" : "토큰 USD 시세 조회",
    "className" : "",
    "description" : "특정 토큰의 USD 시세를 조회합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "토큰 심볼 (예: USDT, ETH)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
    "returnDescription" : "토큰 USD 시세",
    "urlMapping" : "/api/v1/currency-prices/{currencyType}/usd",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "토큰 또는 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getUsdtKrw",
    "name" : "USDT/KRW 시세 조회",
    "className" : "",
    "description" : "USDT/KRW 시세를 조회합니다.",
    "group" : "시세",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
    "returnDescription" : "USDT의 KRW 시세",
    "urlMapping" : "/api/v1/currency-prices/usdt-krw",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "USDT 시세 정보를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getBalance",
    "name" : "잔액 조회",
    "className" : "",
    "description" : "잔액 조회.\n파트너의 통화/체인별 잔액을 반환한다. ledger_entries 기반 정산 잔액을 사용한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.BalanceResponse",
    "returnDescription" : "잔액 목록",
    "urlMapping" : "/widgets/api/balance",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "balance_getTransactions",
    "name" : "거래 내역 조회",
    "className" : "",
    "description" : "거래 내역 조회.\n파트너의 입출금 거래 내역을 페이지네이션으로 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_SIZE",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "offset",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "type",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "거래 유형 필터 (DEPOSIT, WITHDRAWAL, null이면 전체)",
      "isOptional" : true,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_PAGE",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "size",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "orders",
      "type" : "Object",
      "classPath" : "java.util.ArrayList",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "page",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.TransactionResponse",
    "returnDescription" : "페이지네이션된 거래 내역",
    "urlMapping" : "/widgets/api/transactions",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : "xpage",
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : "xpage",
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : true
  }, {
    "id" : "cancelPayment",
    "name" : "Axim 결제 취소",
    "className" : "",
    "description" : "Axim 결제 취소.\n진행 중인 결제를 취소한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "paymentId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "결제 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.AximPaymentStatusResponse",
    "returnDescription" : "취소 결과",
    "urlMapping" : "/widgets/api/axim/payments/{paymentId}",
    "method" : "DELETE",
    "responseStatus" : {
      "200" : "취소 성공",
      "404" : "결제를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "createPayment",
    "name" : "Axim 결제 생성",
    "className" : "",
    "description" : "Axim 결제 생성.\nAxim Pay를 통한 결제를 생성한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.AximPaymentRequest",
      "description" : "결제 요청 (priceKrw, amount, chainType, feeAmount, orderId, partnerUserId)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.AximPaymentResponse",
    "returnDescription" : "결제 정보",
    "urlMapping" : "/widgets/api/axim/payments",
    "method" : "POST",
    "responseStatus" : {
      "200" : "결제 생성 성공",
      "400" : "잘못된 요청"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getConnectionStatus",
    "name" : "Axim 지갑 연결 상태 조회",
    "className" : "",
    "description" : "Axim 지갑 연결 상태 확인.\n파트너 유저의 Axim 지갑 연결 여부를 확인한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 유저 ID",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.AximConnectionResponse",
    "returnDescription" : "연결 정보 (연결 안 됨이면 null)",
    "urlMapping" : "/widgets/api/axim/connection-status",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getInitInfo",
    "name" : "Axim 초기화 정보 조회",
    "className" : "",
    "description" : "Axim 초기화 정보 조회.\n파트너의 Axim Pay 활성화 여부 및 siteId를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.AximInitInfoResponse",
    "returnDescription" : "Axim 활성화 여부 및 siteId",
    "urlMapping" : "/widgets/api/axim/init-info",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPaymentStatus",
    "name" : "Axim 결제 상태 조회",
    "className" : "",
    "description" : "Axim 결제 상태 조회.\n결제 ID로 결제 상태를 조회한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "paymentId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "결제 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.AximPaymentStatusResponse",
    "returnDescription" : "결제 상태",
    "urlMapping" : "/widgets/api/axim/payments/{paymentId}",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "결제를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "activatePaymentLink",
    "name" : "결제 링크 활성화",
    "className" : "",
    "description" : "결제 링크 활성화.\n결제 페이지 진입 시 호출한다. 이미 ACTIVE 상태이면 멱등하게 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "linkId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "결제 링크 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
    "returnDescription" : "결제 링크 정보",
    "urlMapping" : "/widgets/payment/links/{linkId}/activate",
    "method" : "POST",
    "responseStatus" : {
      "200" : "활성화 성공",
      "404" : "결제 링크를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "checkStatus",
    "name" : "결제 링크 상태 조회",
    "className" : "",
    "description" : "결제 링크 상태 조회 (폴링용).\n결제 진행 상태를 폴링으로 확인한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "linkId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "결제 링크 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
    "returnDescription" : "결제 링크 상태",
    "urlMapping" : "/widgets/payment/links/{linkId}/status",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "결제 링크를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "completePayment",
    "name" : "결제 완료 처리",
    "className" : "",
    "description" : "결제 완료 처리 (내부 API).\nACTIVE 상태의 결제 링크를 USED로 변경한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "linkId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "결제 링크 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
    "returnDescription" : "완료 처리된 결제 링크 정보",
    "urlMapping" : "/widgets/payment/links/{linkId}/complete",
    "method" : "POST",
    "responseStatus" : {
      "200" : "완료 처리 성공",
      "404" : "결제 링크를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "expirePayment",
    "name" : "결제 만료 처리",
    "className" : "",
    "description" : "결제 만료 처리 (내부 API).\nACTIVE 상태의 결제 링크를 EXPIRED로 변경한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "linkId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "결제 링크 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
    "returnDescription" : "만료 처리된 결제 링크 정보",
    "urlMapping" : "/widgets/payment/links/{linkId}/expire",
    "method" : "POST",
    "responseStatus" : {
      "200" : "만료 처리 성공",
      "404" : "결제 링크를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPaymentLinkInfo",
    "name" : "결제 링크 정보 조회",
    "className" : "",
    "description" : "결제 링크 정보 조회 (Public).\n인증 없이 결제 링크의 상세 정보를 조회한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "linkId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "결제 링크 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
    "returnDescription" : "결제 링크 정보",
    "urlMapping" : "/widgets/payment/links/{linkId}",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공",
      "404" : "결제 링크를 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : false,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : false,
    "isPaging" : false
  }, {
    "id" : "getBalances",
    "name" : "잔액 목록 조회",
    "className" : "",
    "description" : "파트너의 MASTER 지갑 잔액 목록을 조회합니다.",
    "group" : "파트너 정보",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WalletResponseV1",
    "returnDescription" : "MASTER 지갑 잔액 목록",
    "urlMapping" : "/api/v1/partner/balances",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getChains",
    "name" : "활성 체인 목록 조회",
    "className" : "",
    "description" : "파트너에게 활성화된 체인 목록을 조회합니다.",
    "group" : "파트너 정보",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.ChainActivationResponse",
    "returnDescription" : "활성 체인 목록",
    "urlMapping" : "/api/v1/partner/chains",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getWallets",
    "name" : "지갑 목록 조회",
    "className" : "",
    "description" : "파트너의 HOT 지갑 목록을 조회합니다.",
    "group" : "파트너 정보",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WalletResponseV1",
    "returnDescription" : "HOT 지갑 목록 (잔액 포함)",
    "urlMapping" : "/api/v1/partner/wallets",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "testCallback",
    "name" : "콜백 테스트",
    "className" : "",
    "description" : "파트너 콜백 URL로 테스트 이벤트를 전송합니다.\n지정된 URL로 POST 요청을 보내고 응답 결과를 반환합니다.",
    "group" : "테스트",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.CallbackTestRequest",
      "description" : "콜백 테스트 요청 (콜백 URL, 이벤트 타입)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CallbackTestResponse",
    "returnDescription" : "콜백 전송 결과 (성공 여부, 응답 코드, 메시지)",
    "urlMapping" : "/api/v1/test/callback",
    "method" : "POST",
    "responseStatus" : {
      "200" : "테스트 전송 완료 (콜백 실패 시에도 200 반환, success=false)"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getWithdrawalFee",
    "name" : "출금 수수료 조회",
    "className" : "",
    "description" : "출금 수수료 조회.\n지정한 체인/통화의 출금 수수료를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "통화 타입 (USDT, USDC 등)",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "chainType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WithdrawalFeeResponse",
    "returnDescription" : "수수료 정보",
    "urlMapping" : "/widgets/api/withdrawal-fee",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getWithdrawalLimits",
    "name" : "출금 한도 조회",
    "className" : "",
    "description" : "출금 한도 조회.\n파트너의 일일 출금 한도, 사용량, 잔여 한도를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "currencyType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "통화 타입 (USDT, USDC 등)",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "chainType",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
      "isOptional" : false,
      "defaultValue" : "",
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WithdrawalLimitResponse",
    "returnDescription" : "한도 정보",
    "urlMapping" : "/widgets/api/withdrawal-limits",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "withdrawal_requestWithdrawal",
    "name" : "출금 요청",
    "className" : "",
    "description" : "출금 요청.\n지정한 체인/통화로 출금을 요청한다. 출금 정책 검증 후 요청이 생성된다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.WithdrawalRequest",
      "description" : "출금 요청 (chainType, currencyType, toAddress, amount, partnerUserId)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WithdrawalResponse",
    "returnDescription" : "출금 요청 결과",
    "urlMapping" : "/widgets/api/withdrawal",
    "method" : "POST",
    "responseStatus" : {
      "200" : "출금 요청 성공",
      "400" : "잔액 부족 또는 정책 위반"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "cancelReservation",
    "name" : "입금 예약 취소",
    "className" : "",
    "description" : "입금 예약 취소.\n사용자의 PENDING 상태 예약을 물리 삭제한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "permissions",
      "type" : "Set",
      "classPath" : "java.util.Set",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 유저 ID",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.CancelResponse",
    "returnDescription" : "취소 결과",
    "urlMapping" : "/widgets/api/deposit-reservations",
    "method" : "DELETE",
    "responseStatus" : {
      "200" : "취소 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "completeReservation",
    "name" : "입금 예약 완료 처리",
    "className" : "",
    "description" : "입금 예약 완료 처리.\n예약된 입금의 실제 금액과 트랜잭션 정보를 기록하고 상태를 COMPLETED로 변경한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.DepositCompletionRequest",
      "description" : "완료 요청 (reservationId, actualAmountCrypto, actualAmountKrw, transactionHash, transactionId)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositReservationResponse",
    "returnDescription" : "완료 처리된 예약 정보",
    "urlMapping" : "/widgets/api/deposit-reservations/complete",
    "method" : "POST",
    "responseStatus" : {
      "200" : "완료 처리 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "createReservation",
    "name" : "입금 예약 생성",
    "className" : "",
    "description" : "입금 예약 생성.\nKRW 또는 암호화폐 금액으로 입금 예약을 생성한다. 기존 PENDING 예약은 자동 취소된다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.DepositReservationRequest",
      "description" : "입금 예약 요청 (chainType, currencyType, userId, amountKrw, amountCrypto)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "permissions",
      "type" : "Set",
      "classPath" : "java.util.Set",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositReservationResponse",
    "returnDescription" : "입금 예약 정보",
    "urlMapping" : "/widgets/api/deposit-reservations",
    "method" : "POST",
    "responseStatus" : {
      "200" : "예약 생성 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getReservation",
    "name" : "입금 예약 조회",
    "className" : "",
    "description" : "입금 예약 조회.\n사용자의 현재 PENDING 상태 입금 예약을 조회한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "permissions",
      "type" : "Set",
      "classPath" : "java.util.Set",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 유저 ID",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositReservationResponse",
    "returnDescription" : "입금 예약 정보 (없으면 null)",
    "urlMapping" : "/widgets/api/deposit-reservations",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "updateReservation",
    "name" : "입금 예약 수정",
    "className" : "",
    "description" : "입금 예약 수정.\n기존 PENDING 예약을 취소하고 새 예약을 생성한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.DepositReservationRequest",
      "description" : "입금 예약 요청 (chainType, currencyType, userId, amountKrw, amountCrypto)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "permissions",
      "type" : "Set",
      "classPath" : "java.util.Set",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerUserId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositReservationResponse",
    "returnDescription" : "수정된 입금 예약 정보",
    "urlMapping" : "/widgets/api/deposit-reservations",
    "method" : "PUT",
    "responseStatus" : {
      "200" : "수정 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "generateWidgetToken",
    "name" : "위젯 토큰 발급",
    "className" : "",
    "description" : "위젯 액세스 토큰 발급.\nHMAC 서명 검증 후 Axim 세션 토큰을 발급한다.",
    "group" : "위젯 인증",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.WidgetTokenRequest",
      "description" : "토큰 발급 요청 (partnerUserId, permissions)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "X-API-KEY",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "API 키",
      "isOptional" : false,
      "defaultValue" : ""
    }, {
      "name" : "X-SIGNATURE",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "HMAC 서명",
      "isOptional" : false,
      "defaultValue" : ""
    }, {
      "name" : "X-TIMESTAMP",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "타임스탬프",
      "isOptional" : false,
      "defaultValue" : ""
    }, {
      "name" : "X-SIGNATURE",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "HMAC 서명",
      "isOptional" : false,
      "defaultValue" : ""
    }, {
      "name" : "X-API-KEY",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "API 키",
      "isOptional" : false,
      "defaultValue" : ""
    }, {
      "name" : "X-TIMESTAMP",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "타임스탬프",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WidgetTokenResponse",
    "returnDescription" : "위젯 액세스 토큰 응답",
    "urlMapping" : "/widgets/auth/token",
    "method" : "POST",
    "responseStatus" : {
      "200" : "토큰 발급 성공",
      "401" : "서명 검증 실패"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : false,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : false,
    "isPaging" : false
  }, {
    "id" : "refreshToken",
    "name" : "위젯 토큰 갱신",
    "className" : "",
    "description" : "토큰 갱신.",
    "group" : "위젯 인증",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ {
      "name" : "Authorization",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "Authorization 헤더 (Bearer 토큰)",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WidgetTokenResponse",
    "returnDescription" : "갱신된 위젯 액세스 토큰 응답",
    "urlMapping" : "/widgets/auth/refresh",
    "method" : "POST",
    "responseStatus" : {
      "200" : "토큰 갱신 성공",
      "401" : "토큰 검증 실패"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "createDepositWallet",
    "name" : "입금 지갑 생성",
    "className" : "",
    "description" : "사용자 입금용 HOT 지갑을 생성합니다.\nHD 파생을 통해 새 지갑 주소를 생성하고 파트너 사용자에게 할당합니다.",
    "group" : "사용자",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.CreateDepositWalletRequest",
      "description" : "입금 지갑 생성 요청 (체인, 토큰, 사용자 ID)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositWalletResponse",
    "returnDescription" : "생성된 입금 지갑 정보",
    "urlMapping" : "/api/v1/users/deposit-wallet",
    "method" : "POST",
    "responseStatus" : {
      "200" : "생성 성공",
      "400" : "요청 파라미터 오류",
      "404" : "체인 또는 토큰을 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getPendingDeposits",
    "name" : "사용자 미확정 입금 조회",
    "className" : "",
    "description" : "사용자의 미확정(CONFIRMED) 입금 목록을 조회합니다.\n파트너가 아직 확정(SETTLED)하지 않은 입금 건을 반환합니다.",
    "group" : "사용자",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "userId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 사용자 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.TransactionHistoryResponse",
    "returnDescription" : "미확정 입금 목록",
    "urlMapping" : "/api/v1/users/{userId}/deposits/pending",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getTransactions",
    "name" : "사용자 거래 내역 조회",
    "className" : "",
    "description" : "사용자의 입금/출금 거래 내역을 조회합니다.",
    "group" : "사용자",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "userId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 사용자 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.TransactionHistoryResponse",
    "returnDescription" : "입금 및 출금 거래 내역 목록",
    "urlMapping" : "/api/v1/users/{userId}/transactions",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "requestWithdrawal",
    "name" : "출금 요청",
    "className" : "",
    "description" : "사용자 출금을 요청합니다.\nKRW 단위 금액 입력 시 현재 시세로 토큰 수량을 자동 환산합니다.",
    "group" : "사용자",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.UserWithdrawalRequest",
      "description" : "출금 요청 (체인, 토큰, 금액, 수신 주소)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ {
      "name" : "Access-Token",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 인증 토큰",
      "isOptional" : false,
      "defaultValue" : ""
    } ],
    "returnClass" : "com.cryptoments.openapi.dto.response.WithdrawalResponseV1",
    "returnDescription" : "출금 요청 결과 (트랜잭션 ID, 상태, 금액)",
    "urlMapping" : "/api/v1/users/withdrawal",
    "method" : "POST",
    "responseStatus" : {
      "200" : "출금 요청 성공",
      "400" : "요청 파라미터 오류 또는 출금 정책 위반",
      "404" : "체인 또는 토큰을 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "health",
    "name" : "Health Check",
    "className" : "",
    "description" : "헬스 체크 (DB 커넥션 포함).",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ ],
    "returnClass" : "java.lang.String",
    "returnDescription" : "",
    "urlMapping" : "/health",
    "method" : "GET",
    "responseStatus" : {
      "200" : "성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : false,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : false,
    "isPaging" : false
  }, {
    "id" : "ping",
    "name" : "Ping",
    "className" : "",
    "description" : "서버 상태 확인.",
    "group" : "시스템",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ ],
    "returnClass" : "java.lang.String",
    "returnDescription" : "\"pong\"",
    "urlMapping" : "/ping",
    "method" : "GET",
    "responseStatus" : {
      "200" : "정상"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : false,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : false,
    "isPaging" : false
  }, {
    "id" : "getSupportedChains",
    "name" : "지원 체인 목록 조회",
    "className" : "",
    "description" : "지원 체인 및 토큰 목록을 조회합니다.\n활성화된 네트워크별로 지원하는 토큰(심볼, 컨트랙트 주소, 소수점) 정보를 반환합니다.",
    "group" : "체인 정보",
    "groupId" : "",
    "parameters" : [ ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.SupportedChainResponse",
    "returnDescription" : "지원 체인 목록 (네트워크별 토큰 정보 포함)",
    "urlMapping" : "/api/v1/chains",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : false,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : false,
    "isPaging" : false
  }, {
    "id" : "confirmBatch",
    "name" : "배치 입금 확정",
    "className" : "",
    "description" : "여러 입금 건을 일괄 확정합니다 (partner_confirmed → true).\n각 건별로 확정 성공/실패 결과를 반환합니다.",
    "group" : "트랜잭션",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.ConfirmDepositsRequest",
      "description" : "배치 확정 요청 (트랜잭션 ID 목록)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "java.lang.String",
    "returnDescription" : "배치 확정 결과 (confirmed/failed 목록, 건수)",
    "urlMapping" : "/api/v1/transactions/deposits/confirm-batch",
    "method" : "POST",
    "responseStatus" : {
      "200" : "배치 처리 완료 (개별 실패 건은 failed 목록에 포함)"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "confirmDeposit",
    "name" : "단건 입금 확정",
    "className" : "",
    "description" : "단건 입금을 확정합니다 (partner_confirmed → true).\n파트너가 입금을 확인하고 사용자에게 반영 완료를 표시합니다.\n입금 상태(status) 흐름은 변경하지 않습니다.",
    "group" : "트랜잭션",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "transactionId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "확정할 입금 트랜잭션 ID",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "URL_PATH",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "java.lang.String",
    "returnDescription" : "확정 처리 결과 (success, transactionId)",
    "urlMapping" : "/api/v1/transactions/deposits/{transactionId}/confirm",
    "method" : "POST",
    "responseStatus" : {
      "200" : "확정 성공",
      "404" : "입금 건을 찾을 수 없음"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "getUnconfirmedDeposits",
    "name" : "미확정 입금 목록 조회",
    "className" : "",
    "description" : "미확정 입금 목록을 조회합니다.\n블록체인에서 확인되었으나 파트너가 아직 확정(partner_confirmed)하지 않은 입금 건을 반환합니다.",
    "group" : "트랜잭션",
    "groupId" : "",
    "parameters" : [ {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.TransactionHistoryResponse",
    "returnDescription" : "미확정 입금 목록 (partner_confirmed = false)",
    "urlMapping" : "/api/v1/transactions/deposits/unconfirmed",
    "method" : "GET",
    "responseStatus" : {
      "200" : "조회 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : true,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : true,
    "isNeedsSession" : true,
    "isPaging" : false
  }, {
    "id" : "createDepositAddress",
    "name" : "입금 주소 생성",
    "className" : "",
    "description" : "입금 주소 생성.\nHD Wallet 방식으로 파트너 유저에게 입금 주소를 할당한다.\n이미 할당된 주소가 있으면 기존 주소를 반환한다.",
    "group" : "그룹없음",
    "groupId" : "",
    "parameters" : [ {
      "name" : "request",
      "type" : "Object",
      "classPath" : "com.cryptoments.openapi.dto.request.DepositAddressRequest",
      "description" : "입금 주소 요청 (chainType, currencyType, partnerUserId)",
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_BODY",
      "isEnum" : false
    }, {
      "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
      "type" : "int",
      "classPath" : "int",
      "description" : null,
      "isOptional" : false,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerCode",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 코드",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerName",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : "파트너 이름",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "FORMAT",
      "type" : "Object",
      "classPath" : "java.time.format.DateTimeFormatter",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "partnerId",
      "type" : "Long",
      "classPath" : "java.lang.Long",
      "description" : "partners.id",
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "sessionId",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    }, {
      "name" : "createDate",
      "type" : "String",
      "classPath" : "java.lang.String",
      "description" : null,
      "isOptional" : true,
      "defaultValue" : null,
      "parameterKind" : "REQUEST_PARAMETER",
      "isEnum" : false
    } ],
    "hearders" : [ ],
    "returnClass" : "com.cryptoments.openapi.dto.response.DepositAddressResponse",
    "returnDescription" : "입금 주소 정보",
    "urlMapping" : "/widgets/api/deposit-address",
    "method" : "POST",
    "responseStatus" : {
      "200" : "입금 주소 발급 성공"
    },
    "pagingType" : null,
    "errors" : null,
    "arrayReturn" : false,
    "needsSession" : true,
    "effectivePagingType" : null,
    "isArrayReturn" : false,
    "isNeedsSession" : true,
    "isPaging" : false
  } ],
  "models" : {
    "com.cryptoments.openapi.dto.request.WithdrawalRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.WithdrawalRequest",
      "type" : "Object",
      "description" : "출금 요청. (v1 호환)",
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 서비스의 사용자 ID",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (USDT, USDC)",
        "optional" : true
      }, {
        "name" : "toAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "수신 주소",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "출금 수량",
        "optional" : true
      }, {
        "name" : "memo",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "메모/비고",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.WidgetTokenRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.WidgetTokenRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 사용자 식별자",
        "optional" : true
      }, {
        "name" : "permissions",
        "type" : "Set",
        "classPath" : "java.util.Set",
        "description" : "위젯 권한 목록",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1" : {
      "name" : "com.cryptoments.openapi.dto.response.CurrencyPriceResponseV1",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (예: USDT, USDC)",
        "optional" : true
      }, {
        "name" : "priceKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 시세",
        "optional" : true
      }, {
        "name" : "priceUsd",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "USD 시세",
        "optional" : true
      }, {
        "name" : "lastUpdated",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "마지막 업데이트 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.TransactionHistoryResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.TransactionHistoryResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "transactionId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "거래 ID",
        "optional" : true
      }, {
        "name" : "partnerTransactionId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 거래 ID",
        "optional" : true
      }, {
        "name" : "transactionType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "거래 유형 (DEPOSIT, WITHDRAWAL)",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "fromAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "발신 주소",
        "optional" : true
      }, {
        "name" : "toAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "수신 주소",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "금액",
        "optional" : true
      }, {
        "name" : "priceKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 시세",
        "optional" : true
      }, {
        "name" : "priceUsd",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "USD 시세",
        "optional" : true
      }, {
        "name" : "txHash",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "트랜잭션 해시",
        "optional" : true
      }, {
        "name" : "blockNumber",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "블록 번호",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "거래 상태",
        "optional" : true
      }, {
        "name" : "partnerConfirmed",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "파트너 확정 여부",
        "optional" : true
      }, {
        "name" : "partnerConfirmedAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "파트너 확정 시각",
        "optional" : true
      }, {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 사용자 식별자",
        "optional" : true
      }, {
        "name" : "walletAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 주소",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "생성 시각",
        "optional" : true
      }, {
        "name" : "confirmedAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "확인 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.TransactionResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.TransactionResponse",
      "type" : "Object",
      "description" : "거래 내역 응답. (v1 호환)\nUNION ALL 쿼리 결과를 MyBatis가 직접 매핑한다.",
      "fields" : [ {
        "name" : "transactionId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "트랜잭션 ID (deposit_code 또는 withdrawal_code)",
        "optional" : true
      }, {
        "name" : "type",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "거래 유형 (DEPOSIT, WITHDRAWAL)",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (v1 문자열: BSC, ETHEREUM 등)",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (v1 문자열: USDT, USDC 등)",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "금액",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태",
        "optional" : true
      }, {
        "name" : "txHash",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "TX 해시",
        "optional" : true
      }, {
        "name" : "fromAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "출발 주소",
        "optional" : true
      }, {
        "name" : "toAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "도착 주소",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "생성 일시",
        "optional" : true
      }, {
        "name" : "confirmedAt",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "확인 일시",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.CallbackTestResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.CallbackTestResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "success",
        "type" : "boolean",
        "classPath" : "boolean",
        "description" : "테스트 성공 여부",
        "optional" : false
      }, {
        "name" : "responseCode",
        "type" : "Integer",
        "classPath" : "java.lang.Integer",
        "description" : "HTTP 응답 코드",
        "optional" : true
      }, {
        "name" : "responseMessage",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "응답 메시지",
        "optional" : true
      }, {
        "name" : "sentAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "전송 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WithdrawalResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.WithdrawalResponse",
      "type" : "Object",
      "description" : "출금 요청 응답. (v1 호환)",
      "fields" : [ {
        "name" : "transactionId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "트랜잭션 ID (출금 코드)",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "출금 수량",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "toAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "수신 주소",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태",
        "optional" : true
      }, {
        "name" : "estimatedConfirmTime",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "예상 확인 시간",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.PaymentLinkInfoResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "linkId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 링크 ID",
        "optional" : true
      }, {
        "name" : "title",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 제목",
        "optional" : true
      }, {
        "name" : "amountCrypto",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "암호화폐 금액",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "priceKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 시세",
        "optional" : true
      }, {
        "name" : "calculatedKrwAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 환산 금액",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 링크 상태",
        "optional" : true
      }, {
        "name" : "isUsable",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "사용 가능 여부",
        "optional" : true
      }, {
        "name" : "accessToken",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "액세스 토큰",
        "optional" : true
      }, {
        "name" : "aximEnabled",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "Axim Pay 활성화 여부",
        "optional" : true
      }, {
        "name" : "aximConnected",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "Axim Pay 연결 여부",
        "optional" : true
      }, {
        "name" : "aximSiteId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "Axim 사이트 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.ChainActivationResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.ChainActivationResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (예: ETHEREUM, TRON)",
        "optional" : true
      }, {
        "name" : "chainName",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 이름",
        "optional" : true
      }, {
        "name" : "isActive",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "활성화 여부",
        "optional" : true
      }, {
        "name" : "activatedAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "활성화 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.DepositAddressResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.DepositAddressResponse",
      "type" : "Object",
      "description" : "입금 주소 응답. (v1 호환)",
      "fields" : [ {
        "name" : "address",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "입금 주소",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "minDepositAmount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "최소 입금 금액",
        "optional" : true
      }, {
        "name" : "contractAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "컨트랙트 주소",
        "optional" : true
      }, {
        "name" : "decimals",
        "type" : "Integer",
        "classPath" : "java.lang.Integer",
        "description" : "소수점 자릿수",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.CancelResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.CancelResponse",
      "type" : "Object",
      "description" : "단순 성공 여부 응답.",
      "fields" : [ {
        "name" : "success",
        "type" : "boolean",
        "classPath" : "boolean",
        "description" : "처리 성공 여부",
        "optional" : false
      } ]
    },
    "com.cryptoments.openapi.dto.response.TokenResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.TokenResponse",
      "type" : "Object",
      "description" : "토큰 정보 응답. (v1 호환)",
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "symbol",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "토큰 심볼",
        "optional" : true
      }, {
        "name" : "name",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "토큰 이름",
        "optional" : true
      }, {
        "name" : "contractAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "컨트랙트 주소",
        "optional" : true
      }, {
        "name" : "decimals",
        "type" : "Integer",
        "classPath" : "java.lang.Integer",
        "description" : "소수점 자릿수",
        "optional" : true
      }, {
        "name" : "minWithdrawalAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "최소 출금 금액",
        "optional" : true
      }, {
        "name" : "maxWithdrawalAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "최대 출금 금액",
        "optional" : true
      }, {
        "name" : "withdrawalFee",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "출금 수수료",
        "optional" : true
      }, {
        "name" : "isActive",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "활성 여부",
        "optional" : true
      }, {
        "name" : "withdrawalEnabled",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "출금 가능 여부",
        "optional" : true
      }, {
        "name" : "depositEnabled",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "입금 가능 여부",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.DepositWalletResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.DepositWalletResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "id",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "지갑 ID",
        "optional" : true
      }, {
        "name" : "address",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 주소",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "생성 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.AximInitInfoResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.AximInitInfoResponse",
      "type" : "Object",
      "description" : "Axim 초기화 정보 응답 (v1 호환).",
      "fields" : [ {
        "name" : "enabled",
        "type" : "boolean",
        "classPath" : "boolean",
        "description" : "Axim 활성화 여부",
        "optional" : false
      }, {
        "name" : "siteId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "Axim Site ID (= Axim partnerId)",
        "optional" : true
      }, {
        "name" : "connectId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "Axim 연결 고유 값 (hex(partnerId:partnerUserId))",
        "optional" : true
      }, {
        "name" : "partnerName",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "Axim 파트너명",
        "optional" : true
      }, {
        "name" : "apiKey",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "Axim API Key",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태: ACTIVE, NOT_CONFIGURED, API_ERROR",
        "optional" : true
      }, {
        "name" : "pendingPaymentId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "현재 PENDING 중인 결제 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.AximPaymentStatusResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.AximPaymentStatusResponse",
      "type" : "Object",
      "description" : "Axim 결제 상태 조회 응답. (v1 호환)",
      "fields" : [ {
        "name" : "paymentId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "결제 ID",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 상태",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.SupportedChainResponse$SupportedTokenInfo" : {
      "name" : "com.cryptoments.openapi.dto.response.SupportedChainResponse$SupportedTokenInfo",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "symbol",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "contractAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "decimals",
        "type" : "Integer",
        "classPath" : "java.lang.Integer",
        "description" : null,
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.DepositReservationRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.DepositReservationRequest",
      "type" : "Object",
      "description" : "입금 예약 생성 요청 (v1 호환).",
      "fields" : [ {
        "name" : "userId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "사용자 ID",
        "optional" : false
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : false
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : false
      }, {
        "name" : "amountKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 금액",
        "optional" : true
      }, {
        "name" : "amountCrypto",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "토큰 금액",
        "optional" : true
      }, {
        "name" : "exchangeRate",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "환율",
        "optional" : true
      }, {
        "name" : "linkId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 링크 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.AximPaymentRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.AximPaymentRequest",
      "type" : "Object",
      "description" : "Axim 결제 생성 요청. (v1 호환)",
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 서비스의 사용자 ID",
        "optional" : true
      }, {
        "name" : "priceKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "원화 가격",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "토큰 수량",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (선택, 없으면 자동 선택)",
        "optional" : true
      }, {
        "name" : "feeAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "수수료",
        "optional" : true
      }, {
        "name" : "orderId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "주문 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.ChainResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.ChainResponse",
      "type" : "Object",
      "description" : "체인 정보 응답. (v1 호환)",
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "name",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 이름",
        "optional" : true
      }, {
        "name" : "symbol",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "네이티브 코인 심볼",
        "optional" : true
      }, {
        "name" : "isActive",
        "type" : "Boolean",
        "classPath" : "java.lang.Boolean",
        "description" : "활성 여부",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WidgetTokenResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.WidgetTokenResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "accessToken",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "액세스 토큰",
        "optional" : true
      }, {
        "name" : "refreshToken",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "리프레시 토큰",
        "optional" : true
      }, {
        "name" : "tokenType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "토큰 타입 (예: Bearer)",
        "optional" : true
      }, {
        "name" : "expiresIn",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "토큰 만료 시간 (초)",
        "optional" : true
      }, {
        "name" : "permissions",
        "type" : "Set",
        "classPath" : "java.util.Set",
        "description" : "권한 목록",
        "optional" : true
      }, {
        "name" : "scope",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "스코프",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.DepositReservationResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.DepositReservationResponse",
      "type" : "Object",
      "description" : "입금 예약 응답 (v1 호환).",
      "fields" : [ {
        "name" : "id",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "예약 ID",
        "optional" : true
      }, {
        "name" : "partnerId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "파트너 ID",
        "optional" : true
      }, {
        "name" : "userId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "사용자 ID",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "amountKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 금액",
        "optional" : true
      }, {
        "name" : "amountCrypto",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "토큰 금액",
        "optional" : true
      }, {
        "name" : "exchangeRate",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "환율",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태",
        "optional" : true
      }, {
        "name" : "expiresAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "만료 시각",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "생성일",
        "optional" : true
      }, {
        "name" : "actualAmountCrypto",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "실제 토큰 금액",
        "optional" : true
      }, {
        "name" : "actualAmountKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "실제 KRW 금액",
        "optional" : true
      }, {
        "name" : "transactionHash",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "TX 해시",
        "optional" : true
      }, {
        "name" : "depositCompletedAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "입금 완료 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.session.OpenApiSessionData" : {
      "name" : "com.cryptoments.openapi.session.OpenApiSessionData",
      "type" : "Object",
      "description" : "Open API 세션 데이터.\nAPI Key 인증 시 파트너 정보를 담는다.",
      "fields" : [ {
        "name" : "partnerId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "partners.id",
        "optional" : true
      }, {
        "name" : "partnerCode",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 코드",
        "optional" : true
      }, {
        "name" : "partnerName",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 이름",
        "optional" : true
      }, {
        "name" : "FORMAT",
        "type" : "Object",
        "classPath" : "java.time.format.DateTimeFormatter",
        "description" : null,
        "optional" : true
      }, {
        "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
        "type" : "int",
        "classPath" : "int",
        "description" : null,
        "optional" : false
      }, {
        "name" : "sessionId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "createDate",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.DepositCompletionRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.DepositCompletionRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "reservationId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "예약 ID",
        "optional" : false
      }, {
        "name" : "actualAmountCrypto",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "실제 입금된 암호화폐 금액",
        "optional" : false
      }, {
        "name" : "actualAmountKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "실제 입금된 KRW 환산 금액",
        "optional" : false
      }, {
        "name" : "transactionHash",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "트랜잭션 해시",
        "optional" : false
      }, {
        "name" : "transactionId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "트랜잭션 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.AximConnectionResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.AximConnectionResponse",
      "type" : "Object",
      "description" : "Axim 지갑 연결 상태 응답. (v1 호환)",
      "fields" : [ {
        "name" : "connectId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "연결 ID",
        "optional" : true
      }, {
        "name" : "connectWalletToken",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 연결 토큰",
        "optional" : true
      }, {
        "name" : "walletAddresses",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "연결된 지갑 주소 목록 (JSON 문자열)",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "연결 상태",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "연결 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WithdrawalLimitResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.WithdrawalLimitResponse",
      "type" : "Object",
      "description" : "출금 한도 응답. (v1 호환)",
      "fields" : [ {
        "name" : "minAmount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "최소 금액",
        "optional" : true
      }, {
        "name" : "maxAmount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "최대 금액",
        "optional" : true
      }, {
        "name" : "dailyLimit",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "일일 한도",
        "optional" : true
      }, {
        "name" : "dailyUsed",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "일일 사용량",
        "optional" : true
      }, {
        "name" : "dailyRemaining",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "일일 잔여 한도",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.UserWithdrawalRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.UserWithdrawalRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 사용자 식별자",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "출금 금액 (암호화폐 단위)",
        "optional" : false
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (예: USDT, USDC)",
        "optional" : false
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (예: ETHEREUM, TRON)",
        "optional" : false
      }, {
        "name" : "toAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "수신 주소",
        "optional" : false
      }, {
        "name" : "amountUnit",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "금액 단위 (CRYPTO 또는 KRW)",
        "optional" : true
      }, {
        "name" : "krwAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 환산 금액",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.ExchangeRateResponse.RateInfo" : {
      "name" : "com.cryptoments.openapi.dto.response.ExchangeRateResponse$RateInfo",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "usdKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : null,
        "optional" : true
      }, {
        "name" : "krwUsd",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : null,
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.ConfirmDepositsRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.ConfirmDepositsRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "transactionIds",
        "type" : "Array",
        "classPath" : "java.lang.Long",
        "description" : "확인할 거래 ID 목록",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.BalanceResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.BalanceResponse",
      "type" : "Object",
      "description" : "잔액 응답. (v1 호환)",
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "balance",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "총 잔액",
        "optional" : true
      }, {
        "name" : "lockedBalance",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "동결 잔액",
        "optional" : true
      }, {
        "name" : "availableBalance",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "가용 잔액",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.CreateDepositWalletRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.CreateDepositWalletRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 사용자 식별자",
        "optional" : false
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (예: ETHEREUM, TRON)",
        "optional" : false
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (예: USDT, USDC)",
        "optional" : false
      } ]
    },
    "com.cryptoments.openapi.dto.request.DepositAddressRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.DepositAddressRequest",
      "type" : "Object",
      "description" : "입금 주소 생성 요청. (v1 호환)",
      "fields" : [ {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "파트너 서비스의 사용자 ID",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입 (USDT, USDC)",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.ExchangeRateResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.ExchangeRateResponse",
      "type" : "Object",
      "description" : "환율 정보 응답. (v1 호환)",
      "fields" : [ {
        "name" : "partnerId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "파트너 ID",
        "optional" : true
      }, {
        "name" : "baseCurrency",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "기준 통화",
        "optional" : true
      }, {
        "name" : "rates",
        "type" : "Object",
        "classPath" : "com.cryptoments.openapi.dto.response.ExchangeRateResponse.RateInfo",
        "description" : "환율 정보",
        "optional" : true
      }, {
        "name" : "lastUpdated",
        "type" : "long",
        "classPath" : "long",
        "description" : "마지막 업데이트 시각 (epoch seconds)",
        "optional" : false
      } ]
    },
    "com.cryptoments.openapi.dto.response.AximPaymentResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.AximPaymentResponse",
      "type" : "Object",
      "description" : "Axim 결제 응답 (v1 호환).",
      "fields" : [ {
        "name" : "paymentId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "결제 ID (DB)",
        "optional" : true
      }, {
        "name" : "paymentCode",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 코드",
        "optional" : true
      }, {
        "name" : "aximPaymentId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "Axim 결제 ID",
        "optional" : true
      }, {
        "name" : "amount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "결제 금액",
        "optional" : true
      }, {
        "name" : "priceKrw",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 환산 금액",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "결제 상태",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "walletAddress",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 주소",
        "optional" : true
      }, {
        "name" : "orderId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "주문 ID",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.CurrencyConversionResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.CurrencyConversionResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "fromCurrency",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "원본 통화",
        "optional" : true
      }, {
        "name" : "toCurrency",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "대상 통화",
        "optional" : true
      }, {
        "name" : "fromAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "원본 금액",
        "optional" : true
      }, {
        "name" : "toAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "변환 금액",
        "optional" : true
      }, {
        "name" : "exchangeRate",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "환율",
        "optional" : true
      }, {
        "name" : "convertedAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "변환 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.SupportedChainResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.SupportedChainResponse",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입 (예: ETHEREUM, TRON)",
        "optional" : true
      }, {
        "name" : "name",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 이름",
        "optional" : true
      }, {
        "name" : "symbol",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 심볼",
        "optional" : true
      }, {
        "name" : "tokens",
        "type" : "Array",
        "classPath" : "com.cryptoments.openapi.dto.response.SupportedChainResponse$SupportedTokenInfo",
        "description" : "지원 토큰 목록",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.session.WidgetSessionData" : {
      "name" : "com.cryptoments.openapi.session.WidgetSessionData",
      "type" : "Object",
      "description" : "Widget API 세션 데이터.\n파트너 + 사용자 + 권한 정보를 담는다.",
      "fields" : [ {
        "name" : "partnerId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : null,
        "optional" : true
      }, {
        "name" : "partnerCode",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "partnerName",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "partnerUserId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "permissions",
        "type" : "Set",
        "classPath" : "java.util.Set",
        "description" : null,
        "optional" : true
      }, {
        "name" : "FORMAT",
        "type" : "Object",
        "classPath" : "java.time.format.DateTimeFormatter",
        "description" : null,
        "optional" : true
      }, {
        "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
        "type" : "int",
        "classPath" : "int",
        "description" : null,
        "optional" : false
      }, {
        "name" : "sessionId",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      }, {
        "name" : "createDate",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : null,
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WithdrawalFeeResponse" : {
      "name" : "com.cryptoments.openapi.dto.response.WithdrawalFeeResponse",
      "type" : "Object",
      "description" : "출금 수수료 응답. (v1 호환)",
      "fields" : [ {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "currencyType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "통화 타입",
        "optional" : true
      }, {
        "name" : "fee",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "수수료",
        "optional" : true
      }, {
        "name" : "minAmount",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "최소 금액",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WalletResponseV1" : {
      "name" : "com.cryptoments.openapi.dto.response.WalletResponseV1",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "id",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "지갑 ID",
        "optional" : true
      }, {
        "name" : "address",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 주소",
        "optional" : true
      }, {
        "name" : "chainType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "체인 타입",
        "optional" : true
      }, {
        "name" : "walletType",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "지갑 타입",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "상태",
        "optional" : true
      }, {
        "name" : "balances",
        "type" : "Map",
        "classPath" : "java.util.Map",
        "description" : "잔액 정보 (통화별 잔액)",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "생성 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.response.WithdrawalResponseV1" : {
      "name" : "com.cryptoments.openapi.dto.response.WithdrawalResponseV1",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "transactionId",
        "type" : "Long",
        "classPath" : "java.lang.Long",
        "description" : "거래 ID",
        "optional" : true
      }, {
        "name" : "transactionHash",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "트랜잭션 해시",
        "optional" : true
      }, {
        "name" : "status",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "출금 상태",
        "optional" : true
      }, {
        "name" : "tokenAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "토큰 금액",
        "optional" : true
      }, {
        "name" : "krwAmount",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "KRW 환산 금액",
        "optional" : true
      }, {
        "name" : "tokenKrwPrice",
        "type" : "BigDecimal",
        "classPath" : "java.math.BigDecimal",
        "description" : "토큰 KRW 시세",
        "optional" : true
      }, {
        "name" : "createdAt",
        "type" : "Object",
        "classPath" : "java.time.LocalDateTime",
        "description" : "생성 시각",
        "optional" : true
      } ]
    },
    "com.cryptoments.openapi.dto.request.CallbackTestRequest" : {
      "name" : "com.cryptoments.openapi.dto.request.CallbackTestRequest",
      "type" : "Object",
      "description" : null,
      "fields" : [ {
        "name" : "callbackUrl",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "콜백 URL",
        "optional" : false
      }, {
        "name" : "type",
        "type" : "String",
        "classPath" : "java.lang.String",
        "description" : "콜백 타입 (예: DEPOSIT, WITHDRAWAL)",
        "optional" : true
      } ]
    }
  },
  "errors" : [ {
    "group" : "Error Codes",
    "exception" : "ErrorCodes",
    "status" : 500,
    "codes" : [ {
      "code" : "201",
      "name" : "PARTNER_CHAIN_ALREADY_ACTIVE",
      "messageKey" : "이미 활성화된 체인입니다.",
      "message" : "이미 활성화된 체인입니다."
    }, {
      "code" : "202",
      "name" : "PARTNER_CHAIN_NOT_FOUND",
      "messageKey" : "활성화된 체인을 찾을 수 없습니다.",
      "message" : "활성화된 체인을 찾을 수 없습니다."
    }, {
      "code" : "203",
      "name" : "PARTNER_NOT_FOUND",
      "messageKey" : "파트너를 찾을 수 없습니다.",
      "message" : "파트너를 찾을 수 없습니다."
    }, {
      "code" : "300",
      "name" : "WALLET_GENERATION_FAILED",
      "messageKey" : "지갑 생성에 실패했습니다.",
      "message" : "지갑 생성에 실패했습니다."
    }, {
      "code" : "301",
      "name" : "HD_WALLET_CREATION_FAILED",
      "messageKey" : "HD 지갑 생성에 실패했습니다.",
      "message" : "HD 지갑 생성에 실패했습니다."
    }, {
      "code" : "302",
      "name" : "MASTER_MNEMONIC_NOT_SET",
      "messageKey" : "마스터 니모닉이 설정되지 않았습니다.",
      "message" : "마스터 니모닉이 설정되지 않았습니다."
    }, {
      "code" : "303",
      "name" : "INVALID_DERIVATION_PATH",
      "messageKey" : "잘못된 derivation path입니다.",
      "message" : "잘못된 derivation path입니다."
    }, {
      "code" : "304",
      "name" : "WALLET_NOT_FOUND",
      "messageKey" : "지갑을 찾을 수 없습니다.",
      "message" : "지갑을 찾을 수 없습니다."
    }, {
      "code" : "305",
      "name" : "PRIVATE_KEY_ENCRYPTION_FAILED",
      "messageKey" : "개인키 암호화에 실패했습니다.",
      "message" : "개인키 암호화에 실패했습니다."
    }, {
      "code" : "306",
      "name" : "PRIVATE_KEY_DECRYPTION_FAILED",
      "messageKey" : "개인키 복호화에 실패했습니다.",
      "message" : "개인키 복호화에 실패했습니다."
    }, {
      "code" : "308",
      "name" : "APPROVAL_NOT_RETRYABLE",
      "messageKey" : "재시도할 수 없는 Approve 상태입니다.",
      "message" : "재시도할 수 없는 Approve 상태입니다."
    }, {
      "code" : "309",
      "name" : "WALLET_ADDRESS_NOT_FOUND",
      "messageKey" : "지갑 주소를 찾을 수 없습니다.",
      "message" : "지갑 주소를 찾을 수 없습니다."
    }, {
      "code" : "310",
      "name" : "NONCE_CURRENTLY_LOCKED",
      "messageKey" : "논스가 현재 잠겨 있어 리셋할 수 없습니다.",
      "message" : "논스가 현재 잠겨 있어 리셋할 수 없습니다."
    }, {
      "code" : "311",
      "name" : "POOL_ADDRESS_NOT_FOUND",
      "messageKey" : "풀 주소를 찾을 수 없습니다.",
      "message" : "풀 주소를 찾을 수 없습니다."
    }, {
      "code" : "312",
      "name" : "POOL_APPROVE_NOT_RETRYABLE",
      "messageKey" : "재시도할 수 없는 풀 Approve 상태입니다.",
      "message" : "재시도할 수 없는 풀 Approve 상태입니다."
    }, {
      "code" : "313",
      "name" : "NONCE_TRACKER_NOT_FOUND",
      "messageKey" : "논스 추적기를 찾을 수 없습니다.",
      "message" : "논스 추적기를 찾을 수 없습니다."
    }, {
      "code" : "350",
      "name" : "DEPOSIT_NOT_FOUND",
      "messageKey" : "입금을 찾을 수 없습니다.",
      "message" : "입금을 찾을 수 없습니다."
    }, {
      "code" : "351",
      "name" : "SESSION_NOT_FOUND",
      "messageKey" : "입금 세션을 찾을 수 없습니다.",
      "message" : "입금 세션을 찾을 수 없습니다."
    }, {
      "code" : "352",
      "name" : "WHITELIST_NOT_FOUND",
      "messageKey" : "화이트리스트 항목을 찾을 수 없습니다.",
      "message" : "화이트리스트 항목을 찾을 수 없습니다."
    }, {
      "code" : "360",
      "name" : "WITHDRAWAL_NOT_FOUND",
      "messageKey" : "출금을 찾을 수 없습니다.",
      "message" : "출금을 찾을 수 없습니다."
    }, {
      "code" : "361",
      "name" : "WITHDRAWAL_STATUS_INVALID",
      "messageKey" : "출금 상태가 유효하지 않습니다.",
      "message" : "출금 상태가 유효하지 않습니다."
    }, {
      "code" : "362",
      "name" : "WITHDRAWAL_CANCELLATION_NOT_ALLOWED",
      "messageKey" : "취소할 수 없는 출금 상태입니다.",
      "message" : "취소할 수 없는 출금 상태입니다."
    }, {
      "code" : "370",
      "name" : "RELAYER_NOT_FOUND",
      "messageKey" : "Relayer를 찾을 수 없습니다.",
      "message" : "Relayer를 찾을 수 없습니다."
    }, {
      "code" : "371",
      "name" : "RELAYER_STATUS_INVALID",
      "messageKey" : "Relayer 상태 변경이 불가능합니다.",
      "message" : "Relayer 상태 변경이 불가능합니다."
    }, {
      "code" : "400",
      "name" : "EXTERNAL_API_CONNECTION_ERROR",
      "messageKey" : "외부 API 연결 오류가 발생했습니다.",
      "message" : "외부 API 연결 오류가 발생했습니다."
    }, {
      "code" : "401",
      "name" : "EXTERNAL_API_RESPONSE_ERROR",
      "messageKey" : "외부 API 응답 오류가 발생했습니다.",
      "message" : "외부 API 응답 오류가 발생했습니다."
    }, {
      "code" : "402",
      "name" : "EXTERNAL_API_TIMEOUT",
      "messageKey" : "외부 API 타임아웃이 발생했습니다.",
      "message" : "외부 API 타임아웃이 발생했습니다."
    }, {
      "code" : "500",
      "name" : "TRON_WALLET_CREATION_FAILED",
      "messageKey" : "TRON 지갑 생성에 실패했습니다.",
      "message" : "TRON 지갑 생성에 실패했습니다."
    }, {
      "code" : "501",
      "name" : "TRON_ENERGY_RENTAL_FAILED",
      "messageKey" : "TRON 에너지 렌탈에 실패했습니다.",
      "message" : "TRON 에너지 렌탈에 실패했습니다."
    }, {
      "code" : "502",
      "name" : "TRON_ENERGY_RENTAL_STATUS_FAILED",
      "messageKey" : "TRON 에너지 렌탈 상태 조회에 실패했습니다.",
      "message" : "TRON 에너지 렌탈 상태 조회에 실패했습니다."
    }, {
      "code" : "503",
      "name" : "TRON_BALANCE_QUERY_FAILED",
      "messageKey" : "TRON 잔액 조회에 실패했습니다.",
      "message" : "TRON 잔액 조회에 실패했습니다."
    }, {
      "code" : "504",
      "name" : "TRON_TRANSFER_FAILED",
      "messageKey" : "TRON 트랜잭션 전송에 실패했습니다.",
      "message" : "TRON 트랜잭션 전송에 실패했습니다."
    }, {
      "code" : "505",
      "name" : "TRON_SERVICE_UNAVAILABLE",
      "messageKey" : "TRON 서비스에 연결할 수 없습니다.",
      "message" : "TRON 서비스에 연결할 수 없습니다."
    }, {
      "code" : "506",
      "name" : "TRON_INSUFFICIENT_ENERGY",
      "messageKey" : "TRON 에너지가 부족합니다.",
      "message" : "TRON 에너지가 부족합니다."
    }, {
      "code" : "507",
      "name" : "TRON_INSUFFICIENT_BANDWIDTH",
      "messageKey" : "TRON 대역폭이 부족합니다.",
      "message" : "TRON 대역폭이 부족합니다."
    }, {
      "code" : "508",
      "name" : "TRON_NEEDS_ACCOUNT_ACTIVATION",
      "messageKey" : "TRON 계정 활성화가 필요합니다.",
      "message" : "TRON 계정 활성화가 필요합니다."
    }, {
      "code" : "600",
      "name" : "BLOCKCHAIN_NETWORK_NOT_FOUND",
      "messageKey" : "블록체인 네트워크를 찾을 수 없습니다.",
      "message" : "블록체인 네트워크를 찾을 수 없습니다."
    }, {
      "code" : "601",
      "name" : "BLOCKCHAIN_NETWORK_INACTIVE",
      "messageKey" : "비활성화된 블록체인 네트워크입니다.",
      "message" : "비활성화된 블록체인 네트워크입니다."
    }, {
      "code" : "602",
      "name" : "BLOCKCHAIN_NETWORK_SERVICE_UNAVAILABLE",
      "messageKey" : "블록체인 네트워크 서비스를 사용할 수 없습니다.",
      "message" : "블록체인 네트워크 서비스를 사용할 수 없습니다."
    }, {
      "code" : "607",
      "name" : "BLOCKCHAIN_TRANSACTION_FAILED",
      "messageKey" : "블록체인 트랜잭션 처리에 실패했습니다.",
      "message" : "블록체인 트랜잭션 처리에 실패했습니다."
    }, {
      "code" : "700",
      "name" : "TRANSACTION_NOT_FOUND",
      "messageKey" : "트랜잭션을 찾을 수 없습니다.",
      "message" : "트랜잭션을 찾을 수 없습니다."
    }, {
      "code" : "701",
      "name" : "TRANSACTION_STATUS_INVALID",
      "messageKey" : "트랜잭션 상태가 유효하지 않습니다.",
      "message" : "트랜잭션 상태가 유효하지 않습니다."
    }, {
      "code" : "702",
      "name" : "WITHDRAWAL_PROCESSING_FAILED",
      "messageKey" : "출금 처리에 실패했습니다.",
      "message" : "출금 처리에 실패했습니다."
    }, {
      "code" : "704",
      "name" : "PARTNER_WALLET_NOT_FOUND",
      "messageKey" : "파트너 지갑을 찾을 수 없습니다.",
      "message" : "파트너 지갑을 찾을 수 없습니다."
    }, {
      "code" : "705",
      "name" : "PARTNER_SETTINGS_NOT_FOUND",
      "messageKey" : "파트너 설정을 찾을 수 없습니다.",
      "message" : "파트너 설정을 찾을 수 없습니다."
    }, {
      "code" : "706",
      "name" : "DEPOSIT_SETTLEMENT_FAILED",
      "messageKey" : "입금 정산 처리에 실패했습니다.",
      "message" : "입금 정산 처리에 실패했습니다."
    }, {
      "code" : "385",
      "name" : "WEBHOOK_DELIVERY_NOT_FOUND",
      "messageKey" : "Webhook 배달 로그를 찾을 수 없습니다.",
      "message" : "Webhook 배달 로그를 찾을 수 없습니다."
    }, {
      "code" : "390",
      "name" : "SYSTEM_SETTING_NOT_FOUND",
      "messageKey" : "시스템 설정을 찾을 수 없습니다.",
      "message" : "시스템 설정을 찾을 수 없습니다."
    }, {
      "code" : "800",
      "name" : "NOTIFICATION_SEND_FAILED",
      "messageKey" : "알림 발송에 실패했습니다.",
      "message" : "알림 발송에 실패했습니다."
    }, {
      "code" : "801",
      "name" : "NOTIFICATION_SERVICE_UNAVAILABLE",
      "messageKey" : "알림 서비스를 사용할 수 없습니다.",
      "message" : "알림 서비스를 사용할 수 없습니다."
    }, {
      "code" : "820",
      "name" : "RETRY_NOT_ALLOWED",
      "messageKey" : "재시도할 수 없는 상태입니다.",
      "message" : "재시도할 수 없는 상태입니다."
    }, {
      "code" : "821",
      "name" : "CANCEL_NOT_ALLOWED",
      "messageKey" : "취소할 수 없는 상태입니다.",
      "message" : "취소할 수 없는 상태입니다."
    }, {
      "code" : "830",
      "name" : "GAS_WALLET_NOT_FOUND",
      "messageKey" : "GAS 지갑을 찾을 수 없습니다.",
      "message" : "GAS 지갑을 찾을 수 없습니다."
    }, {
      "code" : "840",
      "name" : "PRICE_NOT_FOUND",
      "messageKey" : "가격 정보를 찾을 수 없습니다.",
      "message" : "가격 정보를 찾을 수 없습니다."
    }, {
      "code" : "841",
      "name" : "HD_WALLET_NOT_FOUND",
      "messageKey" : "HD 지갑을 찾을 수 없습니다.",
      "message" : "HD 지갑을 찾을 수 없습니다."
    }, {
      "code" : "850",
      "name" : "AXIM_SETTINGS_NOT_FOUND",
      "messageKey" : "Axim 설정을 찾을 수 없습니다.",
      "message" : "Axim 설정을 찾을 수 없습니다."
    }, {
      "code" : "860",
      "name" : "CURRENCY_NOT_FOUND",
      "messageKey" : "통화를 찾을 수 없습니다.",
      "message" : "통화를 찾을 수 없습니다."
    }, {
      "code" : "861",
      "name" : "CURRENCY_CODE_DUPLICATE",
      "messageKey" : "이미 존재하는 통화 코드입니다.",
      "message" : "이미 존재하는 통화 코드입니다."
    }, {
      "code" : "835",
      "name" : "GAS_INVOICE_NOT_FOUND",
      "messageKey" : "가스비 청구서를 찾을 수 없습니다.",
      "message" : "가스비 청구서를 찾을 수 없습니다."
    }, {
      "code" : "870",
      "name" : "PAYMENT_LINK_NOT_FOUND",
      "messageKey" : "결제 링크를 찾을 수 없습니다.",
      "message" : "결제 링크를 찾을 수 없습니다."
    }, {
      "code" : "871",
      "name" : "AXIM_PAYMENT_NOT_FOUND",
      "messageKey" : "Axim 결제를 찾을 수 없습니다.",
      "message" : "Axim 결제를 찾을 수 없습니다."
    }, {
      "code" : "872",
      "name" : "INVALID_STATUS_TRANSITION",
      "messageKey" : "유효하지 않은 상태 전이입니다.",
      "message" : "유효하지 않은 상태 전이입니다."
    }, {
      "code" : "880",
      "name" : "TELEGRAM_CONFIG_NOT_FOUND",
      "messageKey" : "텔레그램 설정을 찾을 수 없습니다.",
      "message" : "텔레그램 설정을 찾을 수 없습니다."
    }, {
      "code" : "890",
      "name" : "SETTLEMENT_NOT_FOUND",
      "messageKey" : "정산 정보를 찾을 수 없습니다.",
      "message" : "정산 정보를 찾을 수 없습니다."
    }, {
      "code" : "891",
      "name" : "AUDIT_LOG_NOT_FOUND",
      "messageKey" : "감사 로그를 찾을 수 없습니다.",
      "message" : "감사 로그를 찾을 수 없습니다."
    }, {
      "code" : "603",
      "name" : "BLOCKCHAIN_NETWORK_CODE_DUPLICATE",
      "messageKey" : "이미 존재하는 네트워크 코드입니다.",
      "message" : "이미 존재하는 네트워크 코드입니다."
    }, {
      "code" : "900",
      "name" : "BLOCKCHAIN_API_ERROR",
      "messageKey" : "블록체인 API 호출에 실패했습니다.",
      "message" : "블록체인 API 호출에 실패했습니다."
    }, {
      "code" : "901",
      "name" : "ADMIN_WALLET_ALREADY_EXISTS",
      "messageKey" : "해당 네트워크에 ADMIN 지갑이 이미 존재합니다.",
      "message" : "해당 네트워크에 ADMIN 지갑이 이미 존재합니다."
    }, {
      "code" : "902",
      "name" : "CONTRACT_NOT_FOUND",
      "messageKey" : "컨트랙트를 찾을 수 없습니다.",
      "message" : "컨트랙트를 찾을 수 없습니다."
    }, {
      "code" : "903",
      "name" : "RELAYER_REGISTRATION_FAILED",
      "messageKey" : "Relayer 등록에 실패했습니다.",
      "message" : "Relayer 등록에 실패했습니다."
    }, {
      "code" : "904",
      "name" : "BALANCE_SYNC_FAILED",
      "messageKey" : "잔액 동기화에 실패했습니다.",
      "message" : "잔액 동기화에 실패했습니다."
    }, {
      "code" : "INSUFFICIENT_BALANCE",
      "name" : "INSUFFICIENT_BALANCE",
      "messageKey" : "잔액이 부족합니다.",
      "message" : "잔액이 부족합니다."
    }, {
      "code" : "SINGLE_LIMIT_EXCEEDED",
      "name" : "SINGLE_LIMIT_EXCEEDED",
      "messageKey" : "건당 출금 한도를 초과했습니다.",
      "message" : "건당 출금 한도를 초과했습니다."
    }, {
      "code" : "DAILY_LIMIT_EXCEEDED",
      "name" : "DAILY_LIMIT_EXCEEDED",
      "messageKey" : "일일 출금 한도를 초과했습니다.",
      "message" : "일일 출금 한도를 초과했습니다."
    }, {
      "code" : "COOLDOWN_NOT_MET",
      "name" : "COOLDOWN_NOT_MET",
      "messageKey" : "연속 출금 대기 시간이 충족되지 않았습니다.",
      "message" : "연속 출금 대기 시간이 충족되지 않았습니다."
    }, {
      "code" : "ADDRESS_NOT_WHITELISTED",
      "name" : "ADDRESS_NOT_WHITELISTED",
      "messageKey" : "화이트리스트에 등록되지 않은 주소입니다.",
      "message" : "화이트리스트에 등록되지 않은 주소입니다."
    }, {
      "code" : "CANCELLATION_NOT_ALLOWED",
      "name" : "CANCELLATION_NOT_ALLOWED",
      "messageKey" : "취소할 수 없는 상태입니다.",
      "message" : "취소할 수 없는 상태입니다."
    }, {
      "code" : "CHAIN_NOT_ACTIVE",
      "name" : "CHAIN_NOT_ACTIVE",
      "messageKey" : "활성화되지 않은 체인입니다.",
      "message" : "활성화되지 않은 체인입니다."
    }, {
      "code" : "INVALID_CURRENCY",
      "name" : "INVALID_CURRENCY",
      "messageKey" : "지원하지 않는 통화입니다.",
      "message" : "지원하지 않는 통화입니다."
    }, {
      "code" : "DUPLICATE_REQUEST",
      "name" : "DUPLICATE_REQUEST",
      "messageKey" : "중복 요청입니다.",
      "message" : "중복 요청입니다."
    }, {
      "code" : "POOL_ADDRESS_LIMIT_EXCEEDED",
      "name" : "POOL_ADDRESS_LIMIT_EXCEEDED",
      "messageKey" : "풀 주소 최대 수를 초과했습니다.",
      "message" : "풀 주소 최대 수를 초과했습니다."
    }, {
      "code" : "DECIMAL_MATCH_NOT_ENABLED",
      "name" : "DECIMAL_MATCH_NOT_ENABLED",
      "messageKey" : "소수점 매칭이 활성화되지 않았습니다.",
      "message" : "소수점 매칭이 활성화되지 않았습니다."
    }, {
      "code" : "NO_AVAILABLE_POOL_ADDRESS",
      "name" : "NO_AVAILABLE_POOL_ADDRESS",
      "messageKey" : "사용 가능한 풀 주소가 없습니다.",
      "message" : "사용 가능한 풀 주소가 없습니다."
    }, {
      "code" : "SESSION_CAPACITY_FULL",
      "name" : "SESSION_CAPACITY_FULL",
      "messageKey" : "동시 세션 용량이 초과되었습니다.",
      "message" : "동시 세션 용량이 초과되었습니다."
    }, {
      "code" : "4120",
      "name" : "INVALID_LIMIT",
      "messageKey" : "유효하지 않은 한도 금액입니다.",
      "message" : "유효하지 않은 한도 금액입니다."
    }, {
      "code" : "4121",
      "name" : "INVALID_POLICY_CONFIG",
      "messageKey" : "자동 승인 임계값은 건당 한도 이하여야 합니다.",
      "message" : "자동 승인 임계값은 건당 한도 이하여야 합니다."
    }, {
      "code" : "601",
      "name" : "COLLECTION_BATCH_NOT_FOUND",
      "messageKey" : "집금 배치를 찾을 수 없습니다.",
      "message" : "집금 배치를 찾을 수 없습니다."
    }, {
      "code" : "602",
      "name" : "COLLECTION_BATCH_ALREADY_PROCESSED",
      "messageKey" : "이미 처리된 집금 배치입니다.",
      "message" : "이미 처리된 집금 배치입니다."
    }, {
      "code" : "701",
      "name" : "WEBHOOK_URL_NOT_SET",
      "messageKey" : "Webhook URL이 설정되지 않았습니다.",
      "message" : "Webhook URL이 설정되지 않았습니다."
    }, {
      "code" : "702",
      "name" : "TELEGRAM_NOT_CONFIGURED",
      "messageKey" : "Telegram이 설정되지 않았습니다.",
      "message" : "Telegram이 설정되지 않았습니다."
    }, {
      "code" : "710",
      "name" : "EXTERNAL_SERVICE_ERROR",
      "messageKey" : "외부 서비스 호출에 실패했습니다.",
      "message" : "외부 서비스 호출에 실패했습니다."
    }, {
      "code" : "401-OTP",
      "name" : "OTP_REQUIRED",
      "messageKey" : "OTP 인증이 필요합니다.",
      "message" : "OTP 인증이 필요합니다."
    }, {
      "code" : "401-OTP-INVALID",
      "name" : "OTP_INVALID",
      "messageKey" : "OTP 코드가 올바르지 않습니다.",
      "message" : "OTP 코드가 올바르지 않습니다."
    }, {
      "code" : "873",
      "name" : "AXIM_PAYMENT_CANNOT_CANCEL",
      "messageKey" : "취소할 수 없는 결제 상태입니다.",
      "message" : "취소할 수 없는 결제 상태입니다."
    }, {
      "code" : "910",
      "name" : "RESERVATION_NOT_FOUND",
      "messageKey" : "입금 예약을 찾을 수 없습니다.",
      "message" : "입금 예약을 찾을 수 없습니다."
    }, {
      "code" : "911",
      "name" : "RESERVATION_STATUS_INVALID",
      "messageKey" : "이 상태에서는 해당 작업을 수행할 수 없습니다.",
      "message" : "이 상태에서는 해당 작업을 수행할 수 없습니다."
    } ]
  }, {
    "group" : "Invalid Request Parameter",
    "exception" : "InvalidRequestParameterException",
    "status" : 400,
    "codes" : [ {
      "code" : "11",
      "name" : "INVALID_REQUEST_PARAMETER",
      "messageKey" : "server.http.error.invalid-parameter",
      "message" : "server.http.error.invalid-parameter"
    }, {
      "code" : "12",
      "name" : "NOT_FOUND_REQUEST_BODY",
      "messageKey" : "server.http.error.notfound-api",
      "message" : "server.http.error.notfound-api"
    }, {
      "code" : "13",
      "name" : "NOT_SUPPORT_METHOD",
      "messageKey" : "server.http.error.not-support-method",
      "message" : "server.http.error.not-support-method"
    } ]
  }, {
    "group" : "Not Found",
    "exception" : "NotFoundException",
    "status" : 404,
    "codes" : [ {
      "code" : "100",
      "name" : "NOT_FOUND_API",
      "messageKey" : "server.http.error.notfound-api",
      "message" : "server.http.error.notfound-api"
    } ]
  }, {
    "group" : "Open Api",
    "exception" : "OpenApiException",
    "status" : 400,
    "codes" : [ {
      "code" : "1001",
      "name" : "INVALID_API_KEY",
      "messageKey" : "유효하지 않은 API Key입니다.",
      "message" : "유효하지 않은 API Key입니다."
    }, {
      "code" : "1002",
      "name" : "INVALID_API_SECRET",
      "messageKey" : "API Secret이 일치하지 않습니다.",
      "message" : "API Secret이 일치하지 않습니다."
    }, {
      "code" : "1003",
      "name" : "PARTNER_NOT_ACTIVE",
      "messageKey" : "비활성화된 파트너입니다.",
      "message" : "비활성화된 파트너입니다."
    }, {
      "code" : "1010",
      "name" : "CHAIN_NOT_SUPPORTED",
      "messageKey" : "지원하지 않는 체인입니다.",
      "message" : "지원하지 않는 체인입니다."
    }, {
      "code" : "1011",
      "name" : "TOKEN_NOT_SUPPORTED",
      "messageKey" : "지원하지 않는 토큰입니다.",
      "message" : "지원하지 않는 토큰입니다."
    }, {
      "code" : "1020",
      "name" : "INVALID_ADDRESS",
      "messageKey" : "유효하지 않은 주소입니다.",
      "message" : "유효하지 않은 주소입니다."
    }, {
      "code" : "1030",
      "name" : "INSUFFICIENT_BALANCE",
      "messageKey" : "잔액이 부족합니다.",
      "message" : "잔액이 부족합니다."
    }, {
      "code" : "1031",
      "name" : "AMOUNT_TOO_LOW",
      "messageKey" : "최소 금액 미달입니다.",
      "message" : "최소 금액 미달입니다."
    }, {
      "code" : "1032",
      "name" : "AMOUNT_TOO_HIGH",
      "messageKey" : "최대 금액을 초과했습니다.",
      "message" : "최대 금액을 초과했습니다."
    }, {
      "code" : "1033",
      "name" : "DAILY_LIMIT_EXCEEDED",
      "messageKey" : "일일 한도를 초과했습니다.",
      "message" : "일일 한도를 초과했습니다."
    }, {
      "code" : "1040",
      "name" : "AXIM_NOT_CONNECTED",
      "messageKey" : "Axim 지갑이 연결되지 않았습니다.",
      "message" : "Axim 지갑이 연결되지 않았습니다."
    } ]
  }, {
    "group" : "Un Authorized",
    "exception" : "UnAuthorizedException",
    "status" : 401,
    "codes" : [ {
      "code" : "1",
      "name" : "NOT_FOUND_ACCESS_TOKEN",
      "messageKey" : "server.http.error.required-auth",
      "message" : "server.http.error.required-auth"
    }, {
      "code" : "2",
      "name" : "INVALID_ACCESS_TOKEN",
      "messageKey" : "server.http.error.invalid-auth",
      "message" : "server.http.error.invalid-auth"
    }, {
      "code" : "3",
      "name" : "EXPIRE_ACCESS_TOKEN",
      "messageKey" : "server.http.error.expire-auth",
      "message" : "server.http.error.expire-auth"
    } ]
  }, {
    "group" : "Unavailable Server",
    "exception" : "UnavailableServerException",
    "status" : 504,
    "codes" : [ {
      "code" : "900",
      "name" : "UNAVAILABLE_SERVICE",
      "messageKey" : "server.http.error.no-response-server",
      "message" : "server.http.error.no-response-server"
    } ]
  }, {
    "group" : "Unknown Server",
    "exception" : "UnknownServerException",
    "status" : 500,
    "codes" : [ {
      "code" : "999",
      "name" : "UNKNOWN_SERVER_EXCEPTION",
      "messageKey" : "server.http.error.unknown-server-error",
      "message" : "server.http.error.unknown-server-error"
    } ]
  } ],
  "errorResponse" : {
    "name" : "ApiError",
    "type" : "Object",
    "description" : null,
    "fields" : [ {
      "name" : "code",
      "type" : "String",
      "classPath" : null,
      "description" : null,
      "optional" : true
    }, {
      "name" : "message",
      "type" : "String",
      "classPath" : null,
      "description" : null,
      "optional" : true
    }, {
      "name" : "description",
      "type" : "String",
      "classPath" : null,
      "description" : null,
      "optional" : true
    }, {
      "name" : "data",
      "type" : "Object",
      "classPath" : null,
      "description" : null,
      "optional" : true
    }, {
      "name" : "stackTrace",
      "type" : "String",
      "classPath" : null,
      "description" : null,
      "optional" : true
    } ]
  }
}