{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "Cryptoments Open API v2",
    "version" : "v1.0"
  },
  "servers" : [ {
    "url" : "http://localhost:8080"
  } ],
  "tags" : [ {
    "name" : "그룹없음"
  }, {
    "name" : "시세"
  }, {
    "name" : "파트너 정보"
  }, {
    "name" : "테스트"
  }, {
    "name" : "위젯 인증"
  }, {
    "name" : "사용자"
  }, {
    "name" : "시스템"
  }, {
    "name" : "체인 정보"
  }, {
    "name" : "트랜잭션"
  } ],
  "paths" : {
    "/widgets/api/tokens" : {
      "get" : {
        "summary" : "전체 토큰 조회",
        "description" : "모든 지원 토큰 정보 조회.\n파트너가 활성화한 모든 토큰의 상세 정보를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getAllTokens",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TokenResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/chains" : {
      "get" : {
        "summary" : "지원 체인 조회",
        "description" : "지원 체인 목록 조회.\n파트너가 활성화한 블록체인 네트워크 목록을 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "info_getChains",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ChainResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/exchange-rates" : {
      "get" : {
        "summary" : "환율 조회",
        "description" : "환율 정보 조회.\nUSD/KRW 기준 환율 정보를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getExchangeRates",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ExchangeRateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/chains/{chainType}/tokens" : {
      "get" : {
        "summary" : "체인별 토큰 조회",
        "description" : "특정 체인의 지원 토큰 조회.\n지정한 체인에서 파트너가 사용 가능한 토큰 심볼 목록을 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getTokensByChain",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chainType",
          "in" : "path",
          "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/String"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/convert/krw-to-usdt" : {
      "get" : {
        "summary" : "KRW→USDT 환산",
        "description" : "KRW 금액을 USDT로 환산합니다.",
        "tags" : [ "시세" ],
        "operationId" : "convertKrwToUsdt",
        "parameters" : [ {
          "name" : "amount",
          "in" : "query",
          "description" : "변환할 KRW 금액",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "decimal"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "환산 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyConversionResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "USDT 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/convert/{currencyType}/to-krw" : {
      "get" : {
        "summary" : "토큰→KRW 환산",
        "description" : "지정 토큰 금액을 KRW로 환산합니다.",
        "tags" : [ "시세" ],
        "operationId" : "convertToKrw",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "path",
          "description" : "토큰 심볼 (예: USDT, ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "amount",
          "in" : "query",
          "description" : "변환할 토큰 금액",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "decimal"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "환산 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyConversionResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "토큰 또는 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/convert/{currencyType}/to-usd" : {
      "get" : {
        "summary" : "토큰→USD 환산",
        "description" : "지정 토큰 금액을 USD로 환산합니다.",
        "tags" : [ "시세" ],
        "operationId" : "convertToUsd",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "path",
          "description" : "토큰 심볼 (예: USDT, ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "amount",
          "in" : "query",
          "description" : "변환할 토큰 금액",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "decimal"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "환산 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyConversionResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "토큰 또는 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/convert/usdt-to-krw" : {
      "get" : {
        "summary" : "USDT→KRW 환산",
        "description" : "USDT 금액을 KRW로 환산합니다.",
        "tags" : [ "시세" ],
        "operationId" : "convertUsdtToKrw",
        "parameters" : [ {
          "name" : "amount",
          "in" : "query",
          "description" : "변환할 USDT 금액",
          "required" : true,
          "schema" : {
            "type" : "number",
            "format" : "decimal"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "환산 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyConversionResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "USDT 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices" : {
      "get" : {
        "summary" : "전체 시세 조회",
        "description" : "전체 토큰의 현재 시세를 조회합니다.",
        "tags" : [ "시세" ],
        "operationId" : "getAllPrices",
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/CurrencyPriceResponseV1"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/{currencyType}" : {
      "get" : {
        "summary" : "토큰 시세 조회",
        "description" : "특정 토큰의 현재 시세를 조회합니다 (기본 KRW).",
        "tags" : [ "시세" ],
        "operationId" : "getPrice",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "path",
          "description" : "토큰 심볼 (예: USDT, ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyPriceResponseV1"
                }
              }
            }
          },
          "404" : {
            "description" : "토큰 또는 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/{currencyType}/krw" : {
      "get" : {
        "summary" : "토큰 KRW 시세 조회",
        "description" : "특정 토큰의 KRW 시세를 조회합니다.",
        "tags" : [ "시세" ],
        "operationId" : "getPriceKrw",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "path",
          "description" : "토큰 심볼 (예: USDT, ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyPriceResponseV1"
                }
              }
            }
          },
          "404" : {
            "description" : "토큰 또는 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/{currencyType}/usd" : {
      "get" : {
        "summary" : "토큰 USD 시세 조회",
        "description" : "특정 토큰의 USD 시세를 조회합니다.",
        "tags" : [ "시세" ],
        "operationId" : "getPriceUsd",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "path",
          "description" : "토큰 심볼 (예: USDT, ETH)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyPriceResponseV1"
                }
              }
            }
          },
          "404" : {
            "description" : "토큰 또는 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/currency-prices/usdt-krw" : {
      "get" : {
        "summary" : "USDT/KRW 시세 조회",
        "description" : "USDT/KRW 시세를 조회합니다.",
        "tags" : [ "시세" ],
        "operationId" : "getUsdtKrw",
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CurrencyPriceResponseV1"
                }
              }
            }
          },
          "404" : {
            "description" : "USDT 시세 정보를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/balance" : {
      "get" : {
        "summary" : "잔액 조회",
        "description" : "잔액 조회.\n파트너의 통화/체인별 잔액을 반환한다. ledger_entries 기반 정산 잔액을 사용한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getBalance",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/BalanceResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/transactions" : {
      "get" : {
        "summary" : "거래 내역 조회",
        "description" : "거래 내역 조회.\n파트너의 입출금 거래 내역을 페이지네이션으로 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "balance_getTransactions",
        "parameters" : [ {
          "name" : "DEFAULT_SIZE",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "type",
          "in" : "query",
          "description" : "거래 유형 필터 (DEPOSIT, WITHDRAWAL, null이면 전체)",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "DEFAULT_PAGE",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "size",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "orders",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/XPage_TransactionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/axim/payments/{paymentId}" : {
      "delete" : {
        "summary" : "Axim 결제 취소",
        "description" : "Axim 결제 취소.\n진행 중인 결제를 취소한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "cancelPayment",
        "parameters" : [ {
          "name" : "paymentId",
          "in" : "path",
          "description" : "결제 ID",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "취소 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AximPaymentStatusResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "Axim 결제 상태 조회",
        "description" : "Axim 결제 상태 조회.\n결제 ID로 결제 상태를 조회한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getPaymentStatus",
        "parameters" : [ {
          "name" : "paymentId",
          "in" : "path",
          "description" : "결제 ID",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AximPaymentStatusResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/axim/payments" : {
      "post" : {
        "summary" : "Axim 결제 생성",
        "description" : "Axim 결제 생성.\nAxim Pay를 통한 결제를 생성한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "createPayment",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AximPaymentRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "결제 생성 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AximPaymentResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "잘못된 요청",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/axim/connection-status" : {
      "get" : {
        "summary" : "Axim 지갑 연결 상태 조회",
        "description" : "Axim 지갑 연결 상태 확인.\n파트너 유저의 Axim 지갑 연결 여부를 확인한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getConnectionStatus",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "description" : "파트너 유저 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AximConnectionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/axim/init-info" : {
      "get" : {
        "summary" : "Axim 초기화 정보 조회",
        "description" : "Axim 초기화 정보 조회.\n파트너의 Axim Pay 활성화 여부 및 siteId를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getInitInfo",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AximInitInfoResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/payment/links/{linkId}/activate" : {
      "post" : {
        "summary" : "결제 링크 활성화",
        "description" : "결제 링크 활성화.\n결제 페이지 진입 시 호출한다. 이미 ACTIVE 상태이면 멱등하게 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "activatePaymentLink",
        "parameters" : [ {
          "name" : "linkId",
          "in" : "path",
          "description" : "결제 링크 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "활성화 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentLinkInfoResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제 링크를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/payment/links/{linkId}/status" : {
      "get" : {
        "summary" : "결제 링크 상태 조회",
        "description" : "결제 링크 상태 조회 (폴링용).\n결제 진행 상태를 폴링으로 확인한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "checkStatus",
        "parameters" : [ {
          "name" : "linkId",
          "in" : "path",
          "description" : "결제 링크 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentLinkInfoResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제 링크를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/payment/links/{linkId}/complete" : {
      "post" : {
        "summary" : "결제 완료 처리",
        "description" : "결제 완료 처리 (내부 API).\nACTIVE 상태의 결제 링크를 USED로 변경한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "completePayment",
        "parameters" : [ {
          "name" : "linkId",
          "in" : "path",
          "description" : "결제 링크 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "완료 처리 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentLinkInfoResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제 링크를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/payment/links/{linkId}/expire" : {
      "post" : {
        "summary" : "결제 만료 처리",
        "description" : "결제 만료 처리 (내부 API).\nACTIVE 상태의 결제 링크를 EXPIRED로 변경한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "expirePayment",
        "parameters" : [ {
          "name" : "linkId",
          "in" : "path",
          "description" : "결제 링크 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "만료 처리 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentLinkInfoResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제 링크를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/payment/links/{linkId}" : {
      "get" : {
        "summary" : "결제 링크 정보 조회",
        "description" : "결제 링크 정보 조회 (Public).\n인증 없이 결제 링크의 상세 정보를 조회한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getPaymentLinkInfo",
        "parameters" : [ {
          "name" : "linkId",
          "in" : "path",
          "description" : "결제 링크 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentLinkInfoResponse"
                }
              }
            }
          },
          "404" : {
            "description" : "결제 링크를 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/partner/balances" : {
      "get" : {
        "summary" : "잔액 목록 조회",
        "description" : "파트너의 MASTER 지갑 잔액 목록을 조회합니다.",
        "tags" : [ "파트너 정보" ],
        "operationId" : "getBalances",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/WalletResponseV1"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/partner/chains" : {
      "get" : {
        "summary" : "활성 체인 목록 조회",
        "description" : "파트너에게 활성화된 체인 목록을 조회합니다.",
        "tags" : [ "파트너 정보" ],
        "operationId" : "getChains",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/ChainActivationResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/partner/wallets" : {
      "get" : {
        "summary" : "지갑 목록 조회",
        "description" : "파트너의 HOT 지갑 목록을 조회합니다.",
        "tags" : [ "파트너 정보" ],
        "operationId" : "getWallets",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/WalletResponseV1"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/test/callback" : {
      "post" : {
        "summary" : "콜백 테스트",
        "description" : "파트너 콜백 URL로 테스트 이벤트를 전송합니다.\n지정된 URL로 POST 요청을 보내고 응답 결과를 반환합니다.",
        "tags" : [ "테스트" ],
        "operationId" : "testCallback",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CallbackTestRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "테스트 전송 완료 (콜백 실패 시에도 200 반환, success=false)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CallbackTestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/withdrawal-fee" : {
      "get" : {
        "summary" : "출금 수수료 조회",
        "description" : "출금 수수료 조회.\n지정한 체인/통화의 출금 수수료를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getWithdrawalFee",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "query",
          "description" : "통화 타입 (USDT, USDC 등)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chainType",
          "in" : "query",
          "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WithdrawalFeeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/withdrawal-limits" : {
      "get" : {
        "summary" : "출금 한도 조회",
        "description" : "출금 한도 조회.\n파트너의 일일 출금 한도, 사용량, 잔여 한도를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getWithdrawalLimits",
        "parameters" : [ {
          "name" : "currencyType",
          "in" : "query",
          "description" : "통화 타입 (USDT, USDC 등)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "chainType",
          "in" : "query",
          "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WithdrawalLimitResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/withdrawal" : {
      "post" : {
        "summary" : "출금 요청",
        "description" : "출금 요청.\n지정한 체인/통화로 출금을 요청한다. 출금 정책 검증 후 요청이 생성된다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "withdrawal_requestWithdrawal",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WithdrawalRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "출금 요청 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WithdrawalResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "잔액 부족 또는 정책 위반",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/deposit-reservations" : {
      "delete" : {
        "summary" : "입금 예약 취소",
        "description" : "입금 예약 취소.\n사용자의 PENDING 상태 예약을 물리 삭제한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "cancelReservation",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permissions",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "description" : "파트너 유저 ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "취소 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CancelResponse"
                }
              }
            }
          }
        }
      },
      "post" : {
        "summary" : "입금 예약 생성",
        "description" : "입금 예약 생성.\nKRW 또는 암호화폐 금액으로 입금 예약을 생성한다. 기존 PENDING 예약은 자동 취소된다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "createReservation",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permissions",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DepositReservationRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "예약 생성 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositReservationResponse"
                }
              }
            }
          }
        }
      },
      "get" : {
        "summary" : "입금 예약 조회",
        "description" : "입금 예약 조회.\n사용자의 현재 PENDING 상태 입금 예약을 조회한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "getReservation",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permissions",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "description" : "파트너 유저 ID",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositReservationResponse"
                }
              }
            }
          }
        }
      },
      "put" : {
        "summary" : "입금 예약 수정",
        "description" : "입금 예약 수정.\n기존 PENDING 예약을 취소하고 새 예약을 생성한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "updateReservation",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "permissions",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerUserId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DepositReservationRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "수정 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositReservationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/deposit-reservations/complete" : {
      "post" : {
        "summary" : "입금 예약 완료 처리",
        "description" : "입금 예약 완료 처리.\n예약된 입금의 실제 금액과 트랜잭션 정보를 기록하고 상태를 COMPLETED로 변경한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "completeReservation",
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DepositCompletionRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "완료 처리 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositReservationResponse"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/auth/token" : {
      "post" : {
        "summary" : "위젯 토큰 발급",
        "description" : "위젯 액세스 토큰 발급.\nHMAC 서명 검증 후 Axim 세션 토큰을 발급한다.",
        "tags" : [ "위젯 인증" ],
        "operationId" : "generateWidgetToken",
        "parameters" : [ {
          "name" : "X-API-KEY",
          "in" : "header",
          "description" : "API 키",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-SIGNATURE",
          "in" : "header",
          "description" : "HMAC 서명",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-TIMESTAMP",
          "in" : "header",
          "description" : "타임스탬프",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-SIGNATURE",
          "in" : "header",
          "description" : "HMAC 서명",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-API-KEY",
          "in" : "header",
          "description" : "API 키",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "X-TIMESTAMP",
          "in" : "header",
          "description" : "타임스탬프",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/WidgetTokenRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "토큰 발급 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WidgetTokenResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "서명 검증 실패",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/widgets/auth/refresh" : {
      "post" : {
        "summary" : "위젯 토큰 갱신",
        "description" : "토큰 갱신.",
        "tags" : [ "위젯 인증" ],
        "operationId" : "refreshToken",
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authorization 헤더 (Bearer 토큰)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "토큰 갱신 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WidgetTokenResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "토큰 검증 실패",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/deposit-wallet" : {
      "post" : {
        "summary" : "입금 지갑 생성",
        "description" : "사용자 입금용 HOT 지갑을 생성합니다.\nHD 파생을 통해 새 지갑 주소를 생성하고 파트너 사용자에게 할당합니다.",
        "tags" : [ "사용자" ],
        "operationId" : "createDepositWallet",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateDepositWalletRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "생성 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositWalletResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "요청 파라미터 오류",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404" : {
            "description" : "체인 또는 토큰을 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/{userId}/deposits/pending" : {
      "get" : {
        "summary" : "사용자 미확정 입금 조회",
        "description" : "사용자의 미확정(CONFIRMED) 입금 목록을 조회합니다.\n파트너가 아직 확정(SETTLED)하지 않은 입금 건을 반환합니다.",
        "tags" : [ "사용자" ],
        "operationId" : "getPendingDeposits",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "in" : "path",
          "description" : "파트너 사용자 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TransactionHistoryResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/{userId}/transactions" : {
      "get" : {
        "summary" : "사용자 거래 내역 조회",
        "description" : "사용자의 입금/출금 거래 내역을 조회합니다.",
        "tags" : [ "사용자" ],
        "operationId" : "getTransactions",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "in" : "path",
          "description" : "파트너 사용자 ID",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TransactionHistoryResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/withdrawal" : {
      "post" : {
        "summary" : "출금 요청",
        "description" : "사용자 출금을 요청합니다.\nKRW 단위 금액 입력 시 현재 시세로 토큰 수량을 자동 환산합니다.",
        "tags" : [ "사용자" ],
        "operationId" : "requestWithdrawal",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "Access-Token",
          "in" : "header",
          "description" : "파트너 인증 토큰",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserWithdrawalRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "출금 요청 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/WithdrawalResponseV1"
                }
              }
            }
          },
          "400" : {
            "description" : "요청 파라미터 오류 또는 출금 정책 위반",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404" : {
            "description" : "체인 또는 토큰을 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/health" : {
      "get" : {
        "summary" : "Health Check",
        "description" : "헬스 체크 (DB 커넥션 포함).",
        "tags" : [ "그룹없음" ],
        "operationId" : "health",
        "responses" : {
          "200" : {
            "description" : "성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/String"
                }
              }
            }
          }
        }
      }
    },
    "/ping" : {
      "get" : {
        "summary" : "Ping",
        "description" : "서버 상태 확인.",
        "tags" : [ "시스템" ],
        "operationId" : "ping",
        "responses" : {
          "200" : {
            "description" : "정상",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/String"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/chains" : {
      "get" : {
        "summary" : "지원 체인 목록 조회",
        "description" : "지원 체인 및 토큰 목록을 조회합니다.\n활성화된 네트워크별로 지원하는 토큰(심볼, 컨트랙트 주소, 소수점) 정보를 반환합니다.",
        "tags" : [ "체인 정보" ],
        "operationId" : "getSupportedChains",
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/SupportedChainResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/deposits/confirm-batch" : {
      "post" : {
        "summary" : "배치 입금 확정",
        "description" : "여러 입금 건을 일괄 확정합니다 (partner_confirmed → true).\n각 건별로 확정 성공/실패 결과를 반환합니다.",
        "tags" : [ "트랜잭션" ],
        "operationId" : "confirmBatch",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ConfirmDepositsRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "배치 처리 완료 (개별 실패 건은 failed 목록에 포함)",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/String"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/deposits/{transactionId}/confirm" : {
      "post" : {
        "summary" : "단건 입금 확정",
        "description" : "단건 입금을 확정합니다 (partner_confirmed → true).\n파트너가 입금을 확인하고 사용자에게 반영 완료를 표시합니다.\n입금 상태(status) 흐름은 변경하지 않습니다.",
        "tags" : [ "트랜잭션" ],
        "operationId" : "confirmDeposit",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "transactionId",
          "in" : "path",
          "description" : "확정할 입금 트랜잭션 ID",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "확정 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/String"
                }
              }
            }
          },
          "404" : {
            "description" : "입금 건을 찾을 수 없음",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transactions/deposits/unconfirmed" : {
      "get" : {
        "summary" : "미확정 입금 목록 조회",
        "description" : "미확정 입금 목록을 조회합니다.\n블록체인에서 확인되었으나 파트너가 아직 확정(partner_confirmed)하지 않은 입금 건을 반환합니다.",
        "tags" : [ "트랜잭션" ],
        "operationId" : "getUnconfirmedDeposits",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "조회 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/TransactionHistoryResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/widgets/api/deposit-address" : {
      "post" : {
        "summary" : "입금 주소 생성",
        "description" : "입금 주소 생성.\nHD Wallet 방식으로 파트너 유저에게 입금 주소를 할당한다.\n이미 할당된 주소가 있으면 기존 주소를 반환한다.",
        "tags" : [ "그룹없음" ],
        "operationId" : "createDepositAddress",
        "parameters" : [ {
          "name" : "DEFAULT_TOKEN_EXPIRE_DAYS",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        }, {
          "name" : "partnerCode",
          "in" : "query",
          "description" : "파트너 코드",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerName",
          "in" : "query",
          "description" : "파트너 이름",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "FORMAT",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "partnerId",
          "in" : "query",
          "description" : "partners.id",
          "required" : false,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "sessionId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "createDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DepositAddressRequest"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "입금 주소 발급 성공",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DepositAddressResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "TokenResponse" : {
        "type" : "object",
        "description" : "토큰 정보 응답. (v1 호환)",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "symbol" : {
            "type" : "string",
            "description" : "토큰 심볼"
          },
          "name" : {
            "type" : "string",
            "description" : "토큰 이름"
          },
          "contractAddress" : {
            "type" : "string",
            "description" : "컨트랙트 주소"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "소수점 자릿수",
            "example" : 1
          },
          "minWithdrawalAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "최소 출금 금액",
            "example" : "100.00"
          },
          "maxWithdrawalAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "최대 출금 금액",
            "example" : "100.00"
          },
          "withdrawalFee" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "출금 수수료",
            "example" : "100.00"
          },
          "isActive" : {
            "type" : "boolean",
            "description" : "활성 여부",
            "example" : true
          },
          "withdrawalEnabled" : {
            "type" : "boolean",
            "description" : "출금 가능 여부",
            "example" : true
          },
          "depositEnabled" : {
            "type" : "boolean",
            "description" : "입금 가능 여부",
            "example" : true
          }
        }
      },
      "ChainResponse" : {
        "type" : "object",
        "description" : "체인 정보 응답. (v1 호환)",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "name" : {
            "type" : "string",
            "description" : "체인 이름"
          },
          "symbol" : {
            "type" : "string",
            "description" : "네이티브 코인 심볼"
          },
          "isActive" : {
            "type" : "boolean",
            "description" : "활성 여부",
            "example" : true
          }
        }
      },
      "ExchangeRateResponse" : {
        "type" : "object",
        "description" : "환율 정보 응답. (v1 호환)",
        "properties" : {
          "partnerId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "파트너 ID",
            "example" : 1
          },
          "baseCurrency" : {
            "type" : "string",
            "description" : "기준 통화"
          },
          "rates" : {
            "description" : "환율 정보",
            "allOf" : [ {
              "$ref" : "#/components/schemas/RateInfo"
            } ]
          },
          "lastUpdated" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "마지막 업데이트 시각 (epoch seconds)",
            "example" : 1
          }
        },
        "required" : [ "lastUpdated" ]
      },
      "RateInfo" : {
        "type" : "object",
        "properties" : {
          "usdKrw" : {
            "type" : "number",
            "format" : "decimal",
            "example" : "100.00"
          },
          "krwUsd" : {
            "type" : "number",
            "format" : "decimal",
            "example" : "100.00"
          }
        }
      },
      "CurrencyConversionResponse" : {
        "type" : "object",
        "properties" : {
          "fromCurrency" : {
            "type" : "string",
            "description" : "원본 통화"
          },
          "toCurrency" : {
            "type" : "string",
            "description" : "대상 통화"
          },
          "fromAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "원본 금액",
            "example" : "100.00"
          },
          "toAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "변환 금액",
            "example" : "100.00"
          },
          "exchangeRate" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "환율",
            "example" : "100.00"
          },
          "convertedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "변환 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "CurrencyPriceResponseV1" : {
        "type" : "object",
        "properties" : {
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (예: USDT, USDC)"
          },
          "priceKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 시세",
            "example" : "100.00"
          },
          "priceUsd" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "USD 시세",
            "example" : "100.00"
          },
          "lastUpdated" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "마지막 업데이트 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "BalanceResponse" : {
        "type" : "object",
        "description" : "잔액 응답. (v1 호환)",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "balance" : {
            "type" : "string",
            "description" : "총 잔액"
          },
          "lockedBalance" : {
            "type" : "string",
            "description" : "동결 잔액"
          },
          "availableBalance" : {
            "type" : "string",
            "description" : "가용 잔액"
          }
        }
      },
      "TransactionResponse" : {
        "type" : "object",
        "description" : "거래 내역 응답. (v1 호환)\nUNION ALL 쿼리 결과를 MyBatis가 직접 매핑한다.",
        "properties" : {
          "transactionId" : {
            "type" : "string",
            "description" : "트랜잭션 ID (deposit_code 또는 withdrawal_code)"
          },
          "type" : {
            "type" : "string",
            "description" : "거래 유형 (DEPOSIT, WITHDRAWAL)"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (v1 문자열: BSC, ETHEREUM 등)"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (v1 문자열: USDT, USDC 등)"
          },
          "amount" : {
            "type" : "string",
            "description" : "금액"
          },
          "status" : {
            "type" : "string",
            "description" : "상태"
          },
          "txHash" : {
            "type" : "string",
            "description" : "TX 해시"
          },
          "fromAddress" : {
            "type" : "string",
            "description" : "출발 주소"
          },
          "toAddress" : {
            "type" : "string",
            "description" : "도착 주소"
          },
          "createdAt" : {
            "type" : "string",
            "description" : "생성 일시"
          },
          "confirmedAt" : {
            "type" : "string",
            "description" : "확인 일시"
          }
        }
      },
      "XPage_TransactionResponse" : {
        "type" : "object",
        "description" : "XPage wrapper for TransactionResponse",
        "properties" : {
          "page" : {
            "type" : "integer",
            "format" : "int32"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int32"
          },
          "hasNext" : {
            "type" : "boolean"
          },
          "totalCount" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sort" : {
            "type" : "string"
          },
          "orders" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "pageRows" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TransactionResponse"
            }
          }
        }
      },
      "AximPaymentStatusResponse" : {
        "type" : "object",
        "description" : "Axim 결제 상태 조회 응답. (v1 호환)",
        "properties" : {
          "paymentId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "결제 ID",
            "example" : 1
          },
          "status" : {
            "type" : "string",
            "description" : "결제 상태"
          }
        }
      },
      "AximPaymentRequest" : {
        "type" : "object",
        "description" : "Axim 결제 생성 요청. (v1 호환)",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 서비스의 사용자 ID"
          },
          "priceKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "원화 가격",
            "example" : "100.00"
          },
          "amount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "토큰 수량",
            "example" : "100.00"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (선택, 없으면 자동 선택)"
          },
          "feeAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "수수료",
            "example" : "100.00"
          },
          "orderId" : {
            "type" : "string",
            "description" : "주문 ID"
          }
        }
      },
      "AximPaymentResponse" : {
        "type" : "object",
        "description" : "Axim 결제 응답 (v1 호환).",
        "properties" : {
          "paymentId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "결제 ID (DB)",
            "example" : 1
          },
          "paymentCode" : {
            "type" : "string",
            "description" : "결제 코드"
          },
          "aximPaymentId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Axim 결제 ID",
            "example" : 1
          },
          "amount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "결제 금액",
            "example" : "100.00"
          },
          "priceKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 환산 금액",
            "example" : "100.00"
          },
          "status" : {
            "type" : "string",
            "description" : "결제 상태"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "walletAddress" : {
            "type" : "string",
            "description" : "지갑 주소"
          },
          "orderId" : {
            "type" : "string",
            "description" : "주문 ID"
          }
        }
      },
      "AximConnectionResponse" : {
        "type" : "object",
        "description" : "Axim 지갑 연결 상태 응답. (v1 호환)",
        "properties" : {
          "connectId" : {
            "type" : "string",
            "description" : "연결 ID"
          },
          "connectWalletToken" : {
            "type" : "string",
            "description" : "지갑 연결 토큰"
          },
          "walletAddresses" : {
            "type" : "string",
            "description" : "연결된 지갑 주소 목록 (JSON 문자열)"
          },
          "status" : {
            "type" : "string",
            "description" : "연결 상태"
          },
          "createdAt" : {
            "type" : "string",
            "description" : "연결 시각"
          }
        }
      },
      "AximInitInfoResponse" : {
        "type" : "object",
        "description" : "Axim 초기화 정보 응답 (v1 호환).",
        "properties" : {
          "enabled" : {
            "type" : "boolean",
            "description" : "Axim 활성화 여부",
            "example" : true
          },
          "siteId" : {
            "type" : "string",
            "description" : "Axim Site ID (= Axim partnerId)"
          },
          "connectId" : {
            "type" : "string",
            "description" : "Axim 연결 고유 값 (hex(partnerId:partnerUserId))"
          },
          "partnerName" : {
            "type" : "string",
            "description" : "Axim 파트너명"
          },
          "apiKey" : {
            "type" : "string",
            "description" : "Axim API Key"
          },
          "status" : {
            "type" : "string",
            "description" : "상태: ACTIVE, NOT_CONFIGURED, API_ERROR"
          },
          "pendingPaymentId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "현재 PENDING 중인 결제 ID",
            "example" : 1
          }
        },
        "required" : [ "enabled" ]
      },
      "PaymentLinkInfoResponse" : {
        "type" : "object",
        "properties" : {
          "linkId" : {
            "type" : "string",
            "description" : "결제 링크 ID"
          },
          "title" : {
            "type" : "string",
            "description" : "결제 제목"
          },
          "amountCrypto" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "암호화폐 금액",
            "example" : "100.00"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "priceKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 시세",
            "example" : "100.00"
          },
          "calculatedKrwAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 환산 금액",
            "example" : "100.00"
          },
          "status" : {
            "type" : "string",
            "description" : "결제 링크 상태"
          },
          "isUsable" : {
            "type" : "boolean",
            "description" : "사용 가능 여부",
            "example" : true
          },
          "accessToken" : {
            "type" : "string",
            "description" : "액세스 토큰"
          },
          "aximEnabled" : {
            "type" : "boolean",
            "description" : "Axim Pay 활성화 여부",
            "example" : true
          },
          "aximConnected" : {
            "type" : "boolean",
            "description" : "Axim Pay 연결 여부",
            "example" : true
          },
          "aximSiteId" : {
            "type" : "string",
            "description" : "Axim 사이트 ID"
          }
        }
      },
      "WalletResponseV1" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "지갑 ID",
            "example" : 1
          },
          "address" : {
            "type" : "string",
            "description" : "지갑 주소"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "walletType" : {
            "type" : "string",
            "description" : "지갑 타입"
          },
          "status" : {
            "type" : "string",
            "description" : "상태"
          },
          "balances" : {
            "type" : "string",
            "description" : "잔액 정보 (통화별 잔액)"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "생성 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "ChainActivationResponse" : {
        "type" : "object",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (예: ETHEREUM, TRON)"
          },
          "chainName" : {
            "type" : "string",
            "description" : "체인 이름"
          },
          "isActive" : {
            "type" : "boolean",
            "description" : "활성화 여부",
            "example" : true
          },
          "activatedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "활성화 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "CallbackTestRequest" : {
        "type" : "object",
        "properties" : {
          "callbackUrl" : {
            "type" : "string",
            "description" : "콜백 URL"
          },
          "type" : {
            "type" : "string",
            "description" : "콜백 타입 (예: DEPOSIT, WITHDRAWAL)"
          }
        },
        "required" : [ "callbackUrl" ]
      },
      "CallbackTestResponse" : {
        "type" : "object",
        "properties" : {
          "success" : {
            "type" : "boolean",
            "description" : "테스트 성공 여부",
            "example" : true
          },
          "responseCode" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "HTTP 응답 코드",
            "example" : 1
          },
          "responseMessage" : {
            "type" : "string",
            "description" : "응답 메시지"
          },
          "sentAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "전송 시각",
            "example" : "2026-01-01T00:00:00"
          }
        },
        "required" : [ "success" ]
      },
      "WithdrawalFeeResponse" : {
        "type" : "object",
        "description" : "출금 수수료 응답. (v1 호환)",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "fee" : {
            "type" : "string",
            "description" : "수수료"
          },
          "minAmount" : {
            "type" : "string",
            "description" : "최소 금액"
          }
        }
      },
      "WithdrawalLimitResponse" : {
        "type" : "object",
        "description" : "출금 한도 응답. (v1 호환)",
        "properties" : {
          "minAmount" : {
            "type" : "string",
            "description" : "최소 금액"
          },
          "maxAmount" : {
            "type" : "string",
            "description" : "최대 금액"
          },
          "dailyLimit" : {
            "type" : "string",
            "description" : "일일 한도"
          },
          "dailyUsed" : {
            "type" : "string",
            "description" : "일일 사용량"
          },
          "dailyRemaining" : {
            "type" : "string",
            "description" : "일일 잔여 한도"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          }
        }
      },
      "WithdrawalRequest" : {
        "type" : "object",
        "description" : "출금 요청. (v1 호환)",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 서비스의 사용자 ID"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (USDT, USDC)"
          },
          "toAddress" : {
            "type" : "string",
            "description" : "수신 주소"
          },
          "amount" : {
            "type" : "string",
            "description" : "출금 수량"
          },
          "memo" : {
            "type" : "string",
            "description" : "메모/비고"
          }
        }
      },
      "WithdrawalResponse" : {
        "type" : "object",
        "description" : "출금 요청 응답. (v1 호환)",
        "properties" : {
          "transactionId" : {
            "type" : "string",
            "description" : "트랜잭션 ID (출금 코드)"
          },
          "amount" : {
            "type" : "string",
            "description" : "출금 수량"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "toAddress" : {
            "type" : "string",
            "description" : "수신 주소"
          },
          "status" : {
            "type" : "string",
            "description" : "상태"
          },
          "estimatedConfirmTime" : {
            "type" : "string",
            "description" : "예상 확인 시간"
          }
        }
      },
      "CancelResponse" : {
        "type" : "object",
        "description" : "단순 성공 여부 응답.",
        "properties" : {
          "success" : {
            "type" : "boolean",
            "description" : "처리 성공 여부",
            "example" : true
          }
        },
        "required" : [ "success" ]
      },
      "DepositCompletionRequest" : {
        "type" : "object",
        "properties" : {
          "reservationId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "예약 ID",
            "example" : 1
          },
          "actualAmountCrypto" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "실제 입금된 암호화폐 금액",
            "example" : "100.00"
          },
          "actualAmountKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "실제 입금된 KRW 환산 금액",
            "example" : "100.00"
          },
          "transactionHash" : {
            "type" : "string",
            "description" : "트랜잭션 해시"
          },
          "transactionId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "트랜잭션 ID",
            "example" : 1
          }
        },
        "required" : [ "reservationId", "actualAmountCrypto", "actualAmountKrw", "transactionHash" ]
      },
      "DepositReservationResponse" : {
        "type" : "object",
        "description" : "입금 예약 응답 (v1 호환).",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "예약 ID",
            "example" : 1
          },
          "partnerId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "파트너 ID",
            "example" : 1
          },
          "userId" : {
            "type" : "string",
            "description" : "사용자 ID"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "amountKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 금액",
            "example" : "100.00"
          },
          "amountCrypto" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "토큰 금액",
            "example" : "100.00"
          },
          "exchangeRate" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "환율",
            "example" : "100.00"
          },
          "status" : {
            "type" : "string",
            "description" : "상태"
          },
          "expiresAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "만료 시각",
            "example" : "2026-01-01T00:00:00"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "생성일",
            "example" : "2026-01-01T00:00:00"
          },
          "actualAmountCrypto" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "실제 토큰 금액",
            "example" : "100.00"
          },
          "actualAmountKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "실제 KRW 금액",
            "example" : "100.00"
          },
          "transactionHash" : {
            "type" : "string",
            "description" : "TX 해시"
          },
          "depositCompletedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "입금 완료 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "DepositReservationRequest" : {
        "type" : "object",
        "description" : "입금 예약 생성 요청 (v1 호환).",
        "properties" : {
          "userId" : {
            "type" : "string",
            "description" : "사용자 ID"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "amountKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 금액",
            "example" : "100.00"
          },
          "amountCrypto" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "토큰 금액",
            "example" : "100.00"
          },
          "exchangeRate" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "환율",
            "example" : "100.00"
          },
          "linkId" : {
            "type" : "string",
            "description" : "결제 링크 ID"
          }
        },
        "required" : [ "userId", "currencyType", "chainType" ]
      },
      "WidgetTokenRequest" : {
        "type" : "object",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 사용자 식별자"
          },
          "permissions" : {
            "type" : "string",
            "description" : "위젯 권한 목록"
          }
        }
      },
      "WidgetTokenResponse" : {
        "type" : "object",
        "properties" : {
          "accessToken" : {
            "type" : "string",
            "description" : "액세스 토큰"
          },
          "refreshToken" : {
            "type" : "string",
            "description" : "리프레시 토큰"
          },
          "tokenType" : {
            "type" : "string",
            "description" : "토큰 타입 (예: Bearer)"
          },
          "expiresIn" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "토큰 만료 시간 (초)",
            "example" : 1
          },
          "permissions" : {
            "type" : "string",
            "description" : "권한 목록"
          },
          "scope" : {
            "type" : "string",
            "description" : "스코프"
          }
        }
      },
      "CreateDepositWalletRequest" : {
        "type" : "object",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 사용자 식별자"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (예: ETHEREUM, TRON)"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (예: USDT, USDC)"
          }
        },
        "required" : [ "partnerUserId", "chainType", "currencyType" ]
      },
      "DepositWalletResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "지갑 ID",
            "example" : 1
          },
          "address" : {
            "type" : "string",
            "description" : "지갑 주소"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "status" : {
            "type" : "string",
            "description" : "상태"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "생성 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "TransactionHistoryResponse" : {
        "type" : "object",
        "properties" : {
          "transactionId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "거래 ID",
            "example" : 1
          },
          "partnerTransactionId" : {
            "type" : "string",
            "description" : "파트너 거래 ID"
          },
          "transactionType" : {
            "type" : "string",
            "description" : "거래 유형 (DEPOSIT, WITHDRAWAL)"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "fromAddress" : {
            "type" : "string",
            "description" : "발신 주소"
          },
          "toAddress" : {
            "type" : "string",
            "description" : "수신 주소"
          },
          "amount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "금액",
            "example" : "100.00"
          },
          "priceKrw" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 시세",
            "example" : "100.00"
          },
          "priceUsd" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "USD 시세",
            "example" : "100.00"
          },
          "txHash" : {
            "type" : "string",
            "description" : "트랜잭션 해시"
          },
          "blockNumber" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "블록 번호",
            "example" : 1
          },
          "status" : {
            "type" : "string",
            "description" : "거래 상태"
          },
          "partnerConfirmed" : {
            "type" : "boolean",
            "description" : "파트너 확정 여부",
            "example" : true
          },
          "partnerConfirmedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "파트너 확정 시각",
            "example" : "2026-01-01T00:00:00"
          },
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 사용자 식별자"
          },
          "walletAddress" : {
            "type" : "string",
            "description" : "지갑 주소"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "생성 시각",
            "example" : "2026-01-01T00:00:00"
          },
          "confirmedAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "확인 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "UserWithdrawalRequest" : {
        "type" : "object",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 사용자 식별자"
          },
          "amount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "출금 금액 (암호화폐 단위)",
            "example" : "100.00"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (예: USDT, USDC)"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (예: ETHEREUM, TRON)"
          },
          "toAddress" : {
            "type" : "string",
            "description" : "수신 주소"
          },
          "amountUnit" : {
            "type" : "string",
            "description" : "금액 단위 (CRYPTO 또는 KRW)"
          },
          "krwAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 환산 금액",
            "example" : "100.00"
          }
        },
        "required" : [ "amount", "currencyType", "chainType", "toAddress" ]
      },
      "WithdrawalResponseV1" : {
        "type" : "object",
        "properties" : {
          "transactionId" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "거래 ID",
            "example" : 1
          },
          "transactionHash" : {
            "type" : "string",
            "description" : "트랜잭션 해시"
          },
          "status" : {
            "type" : "string",
            "description" : "출금 상태"
          },
          "tokenAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "토큰 금액",
            "example" : "100.00"
          },
          "krwAmount" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "KRW 환산 금액",
            "example" : "100.00"
          },
          "tokenKrwPrice" : {
            "type" : "number",
            "format" : "decimal",
            "description" : "토큰 KRW 시세",
            "example" : "100.00"
          },
          "createdAt" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "생성 시각",
            "example" : "2026-01-01T00:00:00"
          }
        }
      },
      "SupportedChainResponse" : {
        "type" : "object",
        "properties" : {
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (예: ETHEREUM, TRON)"
          },
          "name" : {
            "type" : "string",
            "description" : "체인 이름"
          },
          "symbol" : {
            "type" : "string",
            "description" : "체인 심볼"
          },
          "tokens" : {
            "type" : "array",
            "description" : "지원 토큰 목록",
            "items" : {
              "$ref" : "#/components/schemas/SupportedChainResponse_SupportedTokenInfo"
            }
          }
        }
      },
      "SupportedChainResponse_SupportedTokenInfo" : {
        "type" : "object",
        "properties" : {
          "currencyType" : {
            "type" : "string"
          },
          "symbol" : {
            "type" : "string"
          },
          "contractAddress" : {
            "type" : "string"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "example" : 1
          }
        }
      },
      "ConfirmDepositsRequest" : {
        "type" : "object",
        "properties" : {
          "transactionIds" : {
            "type" : "array",
            "description" : "확인할 거래 ID 목록",
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          }
        }
      },
      "DepositAddressRequest" : {
        "type" : "object",
        "description" : "입금 주소 생성 요청. (v1 호환)",
        "properties" : {
          "partnerUserId" : {
            "type" : "string",
            "description" : "파트너 서비스의 사용자 ID"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입 (BSC, ETHEREUM, TRON, POLYGON)"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입 (USDT, USDC)"
          }
        }
      },
      "DepositAddressResponse" : {
        "type" : "object",
        "description" : "입금 주소 응답. (v1 호환)",
        "properties" : {
          "address" : {
            "type" : "string",
            "description" : "입금 주소"
          },
          "chainType" : {
            "type" : "string",
            "description" : "체인 타입"
          },
          "currencyType" : {
            "type" : "string",
            "description" : "통화 타입"
          },
          "minDepositAmount" : {
            "type" : "string",
            "description" : "최소 입금 금액"
          },
          "contractAddress" : {
            "type" : "string",
            "description" : "컨트랙트 주소"
          },
          "decimals" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "소수점 자릿수",
            "example" : 1
          }
        }
      },
      "ApiError" : {
        "type" : "object",
        "description" : "API 에러 응답",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "에러 코드"
          },
          "message" : {
            "type" : "string",
            "description" : "에러 메시지"
          },
          "status" : {
            "type" : "integer",
            "description" : "HTTP 상태 코드"
          }
        }
      }
    }
  }
}