빗썸 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. 이벤트 페이지에서 ‘참여 신청’ 먼저!
- 빗썸 홈페이지 상단 메뉴에서 고객지원 > 이벤트 메뉴로 이동합니다.
- “창립 12주년 기념 - 여섯번째, 빗썸에서 수수료 부담 없이 API 거래 시작하세요!” 이벤트를 선택합니다. :contentReference[oaicite:4]{index=4}
- 본문에 있는 “이벤트 신청하기” 또는 “참가 신청” 버튼을 눌러 참여를 등록합니다.
⚠️ 많은 이벤트가 “신청 이전 거래는 리워드 산정에서 제외” 됩니다. 따라서 반드시 이벤트 신청 → 그 이후에 API 거래 순서로 진행해야 합니다.
3-2. API Key 발급받기
다음으로, 빗썸에서 API Key를 발급받아야 합니다. (로그인 상태 기준)
- 빗썸 상단 메뉴에서 고객지원 > FAQ > 기타 또는 API 관리 페이지로 이동합니다. :contentReference[oaicite:5]{index=5}
- 새 API Key 발급 버튼을 클릭합니다.
- API 권한(거래, 조회 등)을 설정하고, 허용 IP를 등록합니다.
- 개인정보 및 API 이용 주의사항 동의 후 발급 완료.
- 발급된 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) 입력
- “주문 실행” 버튼 + 주문/응답 로그 출력 영역
위와 같은 구조의 페이지에서:
- 브라우저에서 HTML 파일을 열고, Access Key / Secret Key를 입력합니다.
- 테스트용으로 거래할 마켓(예: KRW-USDT)을 선택합니다.
- 주문 타입을 설정합니다. (예: 소액 지정가 매수 / 매도)
- 거래 수량과 가격을 소액 기준으로 입력합니다.
- “주문 실행” 버튼을 눌러 API 주문을 전송합니다.
- 화면 하단 로그 또는 빗썸 앱/웹 자산 화면에서 체결 여부를 확인합니다.
이때, 이벤트 조건을 만족하기 위해서는 “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 파일로 저장한 뒤 더블클릭해서 브라우저로 열면 바로 테스트할 수 있습니다. 단, 보안을 위해 반드시 소액·테스트용 계정에서만 사용하시고, 실전 자동매매는 반드시 서버 환경에서 별도 보안 설계를 갖춘 뒤 진행하시길 권장드립니다.
댓글
댓글 쓰기