기본 콘텐츠로 건너뛰기

빗썸 API 거래 이벤트 정리: 수수료 100% 페이백 + 연동 지원금 10만원 받는 법

빗썸 12주년 API 거래 이벤트 정리: 수수료 100% 페이백 + 연동 지원금 10만원 받는 법

최근 빗썸에서 창립 12주년 기념 - 여섯번째, 빗썸에서 수수료 부담 없이 API 거래 시작하세요! 라는 이벤트를 진행하고 있습니다. 이름 그대로, API 거래를 처음 시작하는 고객에게 연동 지원금 10만원 + API 거래 수수료 100% 페이백을 제공하는 이벤트입니다. :contentReference[oaicite:1]{index=1}

이 글에서는 이벤트 핵심 조건과 API Key 발급 방법, 그리고 제가 직접 만든 빗썸 API 주문 HTML 페이지를 활용해서 첫 거래를 마치는 방법까지, 한 번에 정리해 보겠습니다. (투자 추천 글이 아니라, 이벤트 참여와 API 기술 활용 관점에서 작성했습니다.)


1. 빗썸 12주년 API 거래 이벤트 핵심 요약

공식 공지를 기반으로 한 이번 이벤트의 핵심 요약입니다. :contentReference[oaicite:2]{index=2}

  • 이벤트명 : 창립 12주년 기념 - 여섯번째, 빗썸에서 수수료 부담 없이 API 거래 시작하세요!
  • 이벤트 기간 : 2025년 11월 10일(월) ~ (별도 공지 시까지 진행, 공식 페이지 참고)
  • 대상 : 빗썸 API 거래 이력이 없는 모든 고객

혜택 ① API 연동 지원금 10만원

  • 조건 : 이벤트 신청 후, API Key를 발급 받고 API로 첫 거래를 1회 이상 완료
  • 지급 형태 : 원화(KRW)로 지급
  • 지급 시점 : API 첫 거래 이후 돌아오는 첫 번째 금요일 (공휴일이면 익영업일)
  • 세금 : 5만원 초과 혜택이므로 22% 제세공과금 원천징수 후 실수령

혜택 ② API 거래 수수료 100% 페이백

  • 내용 : 이벤트 기간 동안 발생하는 API 거래 수수료 100% 환급
  • 한도 : API 누적 거래금액 1,000억 원까지 선착순 형식으로 페이백 지원
  • 지급 방식 : 일정 주기(금요일 기준)로 정산해 KRW로 지급

정확한 대상, 한도, 제외 조건 등은 반드시 빗썸 공식 이벤트 페이지에서 다시 확인하시길 추천드립니다. (이 글은 공지 내용을 정리한 것이며, 실제 조건은 변경될 수 있습니다.)


2. 이벤트 참여 전 사전 체크사항

  • 빗썸 계정이 있어야 하며, 본인인증 및 보안인증(OTP 등)이 완료되어 있어야 합니다.
  • 이전에 API 거래 이력이 있는 경우 이번 이벤트 대상에서 제외될 수 있습니다.
  • 혜택은 마케팅 목적 리워드로 분류되며, 소득세법에 따른 과세 대상입니다.
  • 출금·입금 패턴, 이상 거래 등은 빗썸 측 모니터링에 따라 혜택 지급에서 제외될 수 있습니다.

특히 API 이벤트는 이벤트 중복 참여가 제한되는 경우가 많으므로, 이미 다른 입금/거래 이벤트를 이용 중이라면 공식 공지의 “중복 참여 불가 이벤트” 항목을 꼭 확인하시기 바랍니다. :contentReference[oaicite:3]{index=3}


3. 단계별 참여 방법: 신청 → API Key 발급 → HTML 페이지로 첫 거래

3-1. 이벤트 페이지에서 ‘참여 신청’ 먼저!

  1. 빗썸 홈페이지 상단 메뉴에서 고객지원 > 이벤트 메뉴로 이동합니다.
  2. “창립 12주년 기념 - 여섯번째, 빗썸에서 수수료 부담 없이 API 거래 시작하세요!” 이벤트를 선택합니다. :contentReference[oaicite:4]{index=4}
  3. 본문에 있는 “이벤트 신청하기” 또는 “참가 신청” 버튼을 눌러 참여를 등록합니다.

⚠️ 많은 이벤트가 “신청 이전 거래는 리워드 산정에서 제외” 됩니다. 따라서 반드시 이벤트 신청 → 그 이후에 API 거래 순서로 진행해야 합니다.

3-2. API Key 발급받기

다음으로, 빗썸에서 API Key를 발급받아야 합니다. (로그인 상태 기준)

  1. 빗썸 상단 메뉴에서 고객지원 > FAQ > 기타 또는 API 관리 페이지로 이동합니다. :contentReference[oaicite:5]{index=5}
  2. 새 API Key 발급 버튼을 클릭합니다.
  3. API 권한(거래, 조회 등)을 설정하고, 허용 IP를 등록합니다.
  4. 개인정보 및 API 이용 주의사항 동의 후 발급 완료.
  5. 발급된 Access Key / Secret Key를 안전한 곳에 복사해 보관합니다.

🔒 보안 주의

  • Access Key / Secret Key는 절대 타인에게 공유하면 안 됩니다.
  • 가능하면 테스트용 소액 계정, 최소 권한, IP 제한을 설정하는 것을 추천합니다.

3-3. 내가 만든 HTML API 거래 페이지에 키 입력 후 첫 거래

이제 발급받은 API Key를 이용해, 직접 만든 HTML API 주문 페이지 또는 다른 개발 환경(파이썬, Node.js 등)에서 첫 API 거래를 진행하면 됩니다.

예를 들어, 이 글에서는 다음과 같은 간단한 웹 페이지를 사용한다고 가정합니다.

  • Access Key / Secret Key 입력 필드
  • 마켓 선택 (예: KRW-USDT)
  • 매수/매도(side), 주문 타입(ord_type: limit/market/price)
  • 수량(volume), 가격(price) 입력
  • “주문 실행” 버튼 + 주문/응답 로그 출력 영역

위와 같은 구조의 페이지에서:

  1. 브라우저에서 HTML 파일을 열고, Access Key / Secret Key를 입력합니다.
  2. 테스트용으로 거래할 마켓(예: KRW-USDT)을 선택합니다.
  3. 주문 타입을 설정합니다. (예: 소액 지정가 매수 / 매도)
  4. 거래 수량과 가격을 소액 기준으로 입력합니다.
  5. “주문 실행” 버튼을 눌러 API 주문을 전송합니다.
  6. 화면 하단 로그 또는 빗썸 앱/웹 자산 화면에서 체결 여부를 확인합니다.

이때, 이벤트 조건을 만족하기 위해서는 “API로 거래가 실제로 체결”되어야 하므로, 가격을 너무 극단적으로 넣어 체결이 안 되지 않도록 호가를 잘 보고 주문하는 것이 좋습니다.


4. 빗썸 API 이벤트, 이런 분들에게 특히 유리합니다

  • 자동 매매나 백테스트를 위해 어차피 API를 써보고 싶었던 분
  • 프런트엔드/백엔드 개발자로, 실제 거래 API를 연동해보고 싶은 분
  • “이왕이면 이벤트 있을 때 시작하자” 하면서 초기 거래 수수료 부담을 줄이고 싶은 트레이더
  • 직접 만든 HTML/JS 거래 봇 UI파이썬 자동매매 스크립트를 실전 환경에 연결해보고 싶은 분

특히 개발자 + 코인 유저 조합이라면, 이번 이벤트는 “실제 API 거래 경험 + 수수료 페이백 + 연동 지원금”이라는 세 가지를 한 번에 챙길 수 있는 기회가 될 수 있습니다.


5. 유의사항 & 리스크 체크

마지막으로, 이벤트 참여 전에 꼭 체크해야 할 리스크 포인트입니다.

  • 이 글은 투자 추천이 아닌, 이벤트·기술 활용 안내입니다.
  • 가상자산 가격은 급격하게 변동할 수 있으며, 원금 손실이 발생할 수 있습니다.
  • API 키 유출 시, 타인이 내 계정으로 거래를 발생시킬 위험이 있습니다.
  • 가능하면 소액, 단순 거래 위주로 이벤트 조건을 충족시키는 전략을 추천합니다.
  • 실제 리워드 조건, 세금, 중복 이벤트 제한 등은 반드시 빗썸 공식 공지 기준으로 판단해야 합니다.

빗썸에서 제공하는 API 문서와 이벤트 공지를 함께 읽어보면, “내가 만든 API 거래 페이지 + 이번 12주년 이벤트”를 조합해서 재미있게 실습해 볼 수 있을 겁니다.

차후에는 이 HTML 페이지에 자동매매 로직, 손절/익절 조건, 로그 저장 기능 등을 추가하면서 나만의 미니 API 트레이딩 툴로 발전시켜 보는 것도 좋겠습니다.

6. 예제: 빗썸 API 주문 테스트용 HTML 코드

위에서 설명한 내용은 개념적인 흐름이라면, 아래 코드는 실제로 브라우저에서 빗썸 API 주문을 테스트해 볼 수 있는 간단한 HTML 예제입니다.

Access Key / Secret Key를 입력하고, 마켓/수량/주문타입을 선택한 뒤 “주문 실행” 버튼을 누르면, 하단 로그 영역에 주문 요청 및 응답 결과가 출력되도록 구성했습니다.

보안을 위해, 실제 큰 금액이나 실전용 키는 절대 사용하지 마시고 반드시 소액·테스트용 계정으로만 활용하시길 권장드립니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8" />
    <title>Bithumb Order Test (Browser)</title>

    <!-- axios -->
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>

    <!-- uuid -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/uuid/8.3.2/uuid.min.js"></script>

    <!-- jsrsasign (JWT 생성용) -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/10.5.27/jsrsasign-all-min.js"></script>
</head>
<body>
    <h2>Bithumb Market/Limit Order Test</h2>

    <!-- ✅ API Key 입력 영역 -->
    <fieldset>
        <legend>API Key 설정</legend>
        <label for="accessKey">Access Key</label><br />
        <input type="text" id="accessKey" style="width:320px" /><br />

        <label for="secretKey">Secret Key</label><br />
        <input type="password" id="secretKey" style="width:320px" />
    </fieldset>

    <!-- ✅ 주문 입력 영역 -->
    <fieldset style="margin-top:10px">
        <legend>주문 설정</legend>

        <label for="market">마켓 (예: KRW-USDT)</label><br />
        <input type="text" id="market" value="KRW-USDT" /><br />

        <label for="side">매수/매도</label><br />
        <select id="side">
            <option value="bid">매수 (bid)</option>
            <option value="ask">매도 (ask)</option>
        </select><br />

        <label for="ordType">주문 타입 (ord_type)</label><br />
        <select id="ordType">
            <option value="limit">지정가 (limit)</option>
            <option value="price">시장가 매수 (price)</option>
            <option value="market">시장가 매도 (market)</option>
        </select><br />

        <label for="volume">수량 (volume)</label><br />
        <input type="number" id="volume" value="1" step="0.0001" /><br />

        <label for="price">가격 또는 총액 (price)</label><br />
        <input type="number" id="price" value="1509" step="0.01" />
    </fieldset>

    <button id="run" style="margin-top:10px">주문 실행</button>

    <!-- ✅ 주문/응답 로그 출력 영역 -->
    <h3 style="margin-top:20px">주문 / 응답 로그</h3>
    <pre id="logBox" style="background:#111;color:#0f0;padding:10px;min-height:160px;max-height:320px;overflow-y:auto;font-size:12px;"></pre>

    <script>
        const apiUrl = "https://api.bithumb.com";

        // SHA512 HEX (빗썸 query_hash 용)
        function sha512Hex(str) {
            const md = new KJUR.crypto.MessageDigest({ alg: "sha512", prov: "cryptojs" });
            md.updateString(str);
            return md.digest();
        }

        // 화면 로그 출력
        function addLog(message, data) {
            const box = document.getElementById("logBox");
            const time = new Date().toLocaleString();
            let text = "[" + time + "] " + message;
            if (data !== undefined) {
                try {
                    text += "\n" + JSON.stringify(data, null, 2);
                } catch (e) {
                    text += "\n" + String(data);
                }
            }
            box.textContent = text + "\n\n" + box.textContent;
        }

        // JWT 생성
        function createJwtToken(accessKey, secretKey, params) {
            const payload = {
                access_key: accessKey,
                nonce: uuid.v4(),
                timestamp: Date.now()
            };

            if (params && Object.keys(params).length > 0) {
                const queryString = Object.entries(params)
                    .map(([k, v]) => encodeURIComponent(k) + "=" + encodeURIComponent(v))
                    .join("&");
                const queryHash = sha512Hex(queryString);
                payload.query_hash = queryHash;
                payload.query_hash_alg = "SHA512";
            }

            const header = { alg: "HS256", typ: "JWT" };
            return KJUR.jws.JWS.sign(
                "HS256",
                JSON.stringify(header),
                JSON.stringify(payload),
                secretKey
            );
        }

        document.getElementById("run").addEventListener("click", () => {
            const accessKey = document.getElementById("accessKey").value.trim();
            const secretKey = document.getElementById("secretKey").value.trim();

            if (!accessKey || !secretKey) {
                alert("Access Key와 Secret Key를 입력해 주세요.");
                return;
            }

            const market  = document.getElementById("market").value.trim();
            const side    = document.getElementById("side").value;
            const ordType = document.getElementById("ordType").value;
            const volume  = document.getElementById("volume").value;
            const price   = document.getElementById("price").value;

            const body = { market, side, ord_type: ordType };

            if (ordType === "limit") {
                body.volume = volume;
                body.price  = price;
            } else if (ordType === "price") {
                body.price  = price;   // 시장가 매수: 총액
            } else if (ordType === "market") {
                body.volume = volume;  // 시장가 매도: 수량
            }

            addLog("📤 주문 요청 (POST /v1/orders)", body);

            const jwtToken = createJwtToken(accessKey, secretKey, body);
            const config = {
                headers: {
                    "Content-Type": "application/json; charset=utf-8",
                    "Authorization": "Bearer " + jwtToken
                }
            };

            axios.post(apiUrl + "/v1/orders", body, config)
                .then(res => {
                    addLog("✅ 주문 성공", res.data);
                })
                .catch(err => {
                    const errData = err.response?.data || err.message || err;
                    addLog("❌ 주문 실패", errData);
                });
        });
    </script>
</body>
</html>

위 코드는 로컬 HTML 파일로 저장한 뒤 더블클릭해서 브라우저로 열면 바로 테스트할 수 있습니다. 단, 보안을 위해 반드시 소액·테스트용 계정에서만 사용하시고, 실전 자동매매는 반드시 서버 환경에서 별도 보안 설계를 갖춘 뒤 진행하시길 권장드립니다.

댓글

이 블로그의 인기 게시물

Java Servlet Request Parameter 완전 정복 — GET/POST 모든 파라미터 확인 & 디버깅 예제 (Request Parameter 전체보기)

Java Servlet Request Parameter 완전 정복 — GET/POST 모든 파라미터 확인 & 디버깅 예제 Java Servlet Request Parameter 완전 정복 웹 애플리케이션에서 클라이언트로부터 전달되는 Request Parameter 를 확인하는 것은 필수입니다. 이 글에서는 Java Servlet 과 JSP 에서 GET/POST 요청 파라미터를 전체 출력하고 디버깅하는 방법을 다양한 예제와 함께 소개합니다. 1. 기본 예제: getParameterNames() 사용 Enumeration<String> params = request.getParameterNames(); System.out.println("----------------------------"); while (params.hasMoreElements()){ String name = params.nextElement(); System.out.println(name + " : " + request.getParameter(name)); } System.out.println("----------------------------"); 위 코드는 요청에 포함된 모든 파라미터 이름과 값을 출력하는 기본 방법입니다. 2. HTML Form과 연동 예제 <form action="CheckParamsServlet" method="post"> 이름: <input type="text" name="username"><br> 이메일: <input type="email" name="email"><b...

PostgreSQL 달력(일별,월별)

SQL 팁: GENERATE_SERIES로 일별, 월별 날짜 목록 만들기 SQL 팁: GENERATE_SERIES 로 일별, 월별 날짜 목록 만들기 데이터베이스에서 통계 리포트를 작성하거나 비어있는 날짜 데이터를 채워야 할 때, 특정 기간의 날짜 목록이 필요할 수 있습니다. PostgreSQL과 같은 데이터베이스에서는 GENERATE_SERIES 함수를 사용하여 이 작업을 매우 간단하게 처리할 수 있습니다. 1. 🗓️ 일별 날짜 목록 생성하기 2020년 1월 1일부터 12월 31일까지의 모든 날짜를 '1 day' 간격으로 생성하는 쿼리입니다. WITH date_series AS ( SELECT DATE(GENERATE_SERIES( TO_DATE('2020-01-01', 'YYYY-MM-DD'), TO_DATE('2020-12-31', 'YYYY-MM-DD'), '1 day' )) AS DATE ) SELECT DATE FROM date_series 이 쿼리는 WITH 절(CTE)을 사용하여 date_series 라는 임시 테이블을 만들고, GENERATE_SERIES 함수로 날짜를 채웁니다. 결과 (일별 출력) 2. 📅 월별 날짜 목록 생성하기 동일한 원리로, 간격을 '1 MONTH' 로 변경하면 월별 목록을 생성할 수 있습니다. TO...

CSS로 레이어 팝업 화면 가운데 정렬하는 방법 (top·left·transform 완전 정리)

레이어 팝업 센터 정렬, 이 코드만 알면 끝 (CSS 예제 포함) 이벤트 배너나 공지사항을 띄울 때 레이어 팝업(center 정렬) 을 깔끔하게 잡는 게 생각보다 어렵습니다. 화면 크기가 변해도 가운데에 고정되고, 모바일에서도 자연스럽게 보이게 하려면 position , top , left , transform 을 정확하게 이해해야 합니다. 이 글에서는 아래 내용을 예제로 정리합니다. 레이어 팝업(center 정렬)의 기본 개념 자주 사용하는 position: absolute / fixed 정렬 방식 질문에서 주신 스타일 top: 3.25%; left: 50%; transform: translateX(-50%) 의 의미 실무에서 바로 쓰는 반응형 레이어 팝업 HTML/CSS 예제 1. 레이어 팝업(center 정렬)이란? 레이어 팝업(레이어 팝업창) 은 새 창을 띄우는 것이 아니라, 현재 페이지 위에 div 레이어를 띄워서 공지사항, 광고, 이벤트 등을 보여주는 방식을 말합니다. 검색엔진(SEO) 입장에서도 같은 페이지 안에 HTML이 존재 하기 때문에 팝업 안의 텍스트도 정상적으로 인덱싱될 수 있습니다. 즉, “레이어 팝업 센터 정렬”, “레이어 팝업 만드는 방법”과 같이 관련 키워드를 적절히 넣어주면 검색 노출에 도움이 됩니다. 2. 질문에서 주신 레이어 팝업 스타일 분석 질문에서 주신 스타일은 다음과 같습니다. <div class="layer-popup" style="width:1210px; z-index:9001; position:absolute; top:3.25%; left:50%; transform:translateX(-50%);"> 레이어 팝업 내용 <...