API 오류 메시지

최종 업데이트: 2025년 8월 8일

소개

대부분의 API 요청은 성공적으로 완료되지만, 때로는 문제가 발생하여 예상된 응답 대신 오류 메시지가 반환됩니다.

당사의 API는 오류의 원인을 제공하고 적절한 해결책을 제시하기 위한 다양한 설명 오류 메시지를 제공합니다.

API 오류 메시지는 여러 다른 그룹(오류 유형, 근본 원인 및 최적의 해결책에 따라)으로 나눌 수 있지만, API 오류 메시지의 형식은 일관되며 다음과 같습니다.

"Severity Level""Error Category":"Error Message"

"Severity Level"은 오류의 경우 E, 경고의 경우 W가 될 수 있습니다. "Error Category"는 General, API, Query, Order, Trade, Funding 또는 Service 중 하나가 될 수 있습니다. "Error Message"는 오류의 원인을 설명하는 모든 텍스트 문자열(예: Invalid arguments)이 될 수 있습니다.

예를 들어, 티커 쿼리에서 유효하지 않은 통화 쌍이 사용되었음을 나타내는 오류는 다음과 같습니다.

EQuery:Unknown asset pair

일부 타사 소프트웨어(모바일 앱, 트레이딩 봇 등)는 원래 API 오류를 숨기고 사용자 지정 오류를 표시하므로, 사용되는 소프트웨어에 따라 대체 오류 형식이나 내용이 가능할 수 있습니다.

  • 일반 사용 오류

  • 속도 제한 오류

  • 거래(주문 제출/취소) 오류

  • 자금(입금/출금) 오류

  • 서비스 상태 오류

  • 내부 오류

  • Cloudflare(네트워킹) 오류

일반 사용 오류

API 클라이언트가 API 키에 권한이 없는 작업을 시도할 때 권한 거부 오류가 반환됩니다. 예를 들어, API 클라이언트가 거래 접근은 허용하지만 계정 관리 접근은 허용하지 않도록 구성된 API 키를 사용하여 계정 잔액을 검색하려고 시도하면 권한 거부 오류가 반환됩니다. 계정 관리의 설정 -> API 탭을 통해 API 키와 해당 설정(예: 권한)을 검토할 수 있습니다. 타사 앱에서 사용되는 API 키가 앱에 필요한 모든 설정과 권한을 가지고 있는지 확인해야 합니다.

호출에 사용된 API 키가 만료되었거나 비활성화된 경우 이 오류가 반환됩니다. 계정 관리의 설정 -> API 탭에서 API 키를 검토하거나 새 키를 생성하여 애플리케이션을 업데이트하십시오.

AssetPairs 공개 호출에서 당사의 전체 자산 쌍 목록을 가져와 Json 헤더의 항목으로 또는 "altname" 매개변수로 쌍 이름을 찾을 수 있습니다: https://api.kraken.com/0/public/AssetPairs

필수 매개변수 없이 메서드를 호출할 때 이 오류가 반환됩니다. 예를 들어, 유효한 트랜잭션 ID(txid) 매개변수를 지정하지 않고 QueryOrders 메서드를 호출하면 잘못된 인수 오류가 반환됩니다. 불필요한 매개변수로 메서드를 호출해도 불필요한 매개변수는 단순히 무시되므로 잘못된 인수 오류가 반환되지 않습니다.

API 키 또는 API 시크릿이 프로그램에 잘못 작성되었거나 인증에 사용된 POST 데이터와 API로 전송된 POST 데이터가 일치하지 않는 경우 잘못된 서명 오류가 발생합니다. 추가 참조를 위해 다음은 API 서명 알고리즘을 구현하는 Python 코드 예시입니다. 적절한 API 공개 키는 계정 관리에서 복사하여 붙여넣어야 하며, API 메서드와 POST 데이터는 적절하게 업데이트되어야 합니다. 출력 값은 API-Sign HTTP 헤더의 값으로 직접 사용될 수 있습니다. #!/usr/bin/env python

# Import required Python libraries
import time
import base64
import hashlib
import hmac

# Decode API private key from base64 format displayed in account management
api_secret = base64.b64decode("nmlrD83t1J+yVWKUBx9vD6j26C5zhC11tFfXpN+Ww+8oOVuGgse5AeADcvl95jYaD+UAi3D5CrVfFr8GfQ7zhA==")

# Variables (API method, nonce, and POST data)
api_path = "/0/private/TradeBalance"
api_nonce = str(int(time.time()*1000))
api_post = "nonce=" + api_nonce + "&asset=xxbt"

# Cryptographic hash algorithms
api_sha256 = hashlib.sha256(api_nonce + api_post).digest()
api_hmac = hmac.new(api_secret, api_path + api_sha256, hashlib.sha512)

# Encode signature into base64 format used in API-Sign value
api_signature = base64.b64encode(api_hmac.digest())

# API authentication signature for use in API-Sign HTTP header
print(api_signature)SHA256은 nonce 값 자체와 API 메서드에 대한 POST 데이터를 사용하여 계산되며, POST 데이터는 nonce(다시) 및 API 메서드 매개변수에 대한 이름/값 쌍으로 구성됩니다. TradeBalance 메서드에 대해 SHA256에 전달되어야 하는 데이터의 예시는 다음과 같습니다.SHA256 = SHA256 of "1541933977000nonce=1541933977000&asset=xxbt"SHA256에 전달되는 문자열 값은 추가적인 null (\0) 값을 포함해서는 안 되며, 문자열 값은 base64 또는 16진수로 인코딩되어서는 안 됩니다(즉, 문자열 값은 일반 텍스트 문자열이어야 합니다).URI 경로는 "https://api.kraken.com" 접두사를 제외한 API 메서드의 전체 URL이므로, TradeBalance 메서드의 URI 경로(예시)는 추가 null 값 없이 문자열 값 "/0/private/TradeBalance"가 됩니다.HMAC SHA512는 URI 경로와 이전에 계산된 SHA256 다이제스트를 사용하여 계산되며, base64로 디코딩된 API 개인 키가 HMAC 키로 사용됩니다. HMAC에 전달되어야 하는 데이터의 예시는 다음과 같습니다.HMAC SHA512 using base64 decoded private key = HMAC of "/0/private/TradeBalanceSHA256"API-Key 및 API-Sign HTTP 헤더는 필수 사용자 지정 HTTP 헤더 두 가지입니다. API-Key 헤더는 계정 관리의 API 공개 키와 정확히 동일합니다. API-Sign 헤더는 base64로 인코딩된 HMAC SHA512 다이제스트입니다.

이 오류에 대한 자세한 정보는 다음에서 확인할 수 있습니다:https://support.kraken.com/hc/en-us/articles/360001148063그리고 Nonce 및 Nonce Window에 대한 자세한 정보는 다음에서 확인할 수 있습니다:https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

유효하지 않은 세션 오류는 WebSocket API를 통해 반환되며, 이는 더 이상 유효하지 않은(예: 이미 만료된) 인증 토큰을 사용하여 인증된(비공개) 피드를 구독하려고 시도할 때 발생합니다.

해결책은 REST API GetWebSocketsToken 엔드포인트를 통해 새 인증 토큰을 요청하고, 모든 후속 인증된(비공개) 구독 요청에 새 토큰을 사용하는 것입니다.

잘못된 요청 오류는 REST/WebSocket 간의 URL 불일치 또는 HTTP POST 데이터를 올바르게 포함하지 않는 등 기본 HTTP 요청(후속 API 요청이 아님)에 문제가 있음을 나타냅니다.

% curl --data "" https://api.kraken.com/0/private/GetWebSocketsToken

{"error":["EAPI:Bad request"]}

호출되는 엔드포인트가 유효한 엔드포인트가 아닐 때 이 오류가 반환됩니다.

속도 제한 오류

주문 추가 및 취소는 당사의 표준 API 카운터 제한에 포함되지 않지만, 이러한 작업에는 자체적인 주문 추가 및 취소 카운터가 있습니다. 이 카운터는 주문이 오더북에 오래 남아 있을수록 고객이 더 많은 주문을 추가하거나 취소할 수 있도록 작동합니다.

너무 많은 API 호출 실패, 짧은 시간 내에 너무 많은 유효하지 않은 nonce 오류 또는 유효하지 않은 서명이 발생한 경우 일시적인 잠금 오류 메시지가 나타날 수 있습니다. 이러한 호출이 오류를 반환하더라도 해당 오류는 여전히 API 제한에 포함되며 일시적인 잠금으로 이어질 수 있습니다.

일시적인 잠금은 약 15분 동안 지속됩니다. 일시적인 잠금 오류를 받은 후에는 새로운 API 요청을 보내기 전에 15분 동안 기다려 주십시오. 여러 유효하지 않은 nonce 오류가 발생하는 경우, 이러한 오류 발생 빈도를 줄이는 데 도움이 될 수 있으므로 nonce 윈도우를 늘려 주십시오. 비공개 API 호출 빈도도 줄여 주십시오.

거래 오류

거래 엔진 유지보수를 위해 마진을 이용한 새로운 현물 포지션 개설이 일시적으로 중단되었습니다. 이 기능은 곧 다시 제공될 예정이며, status.kraken.com에서 업데이트를 확인할 수 있습니다.

또 다른 이유는 특정 국가에 거주하는 고객에게는 마진을 이용한 현물 포지션이 현재 제공되지 않을 수 있기 때문입니다.

Kraken에서는 동일한 페어에 대해 롱 포지션과 숏 포지션을 동시에 열 수 없습니다.

동일한 통화에 대해 롱 포지션과 숏 포지션을 열려면, 동일한 통화를 기본 또는 인용 통화로 사용하는 다른 거래 페어를 선택하십시오. 예: short XBT/USD, long XBT/EUR.

이 오류는 현재 인증 수준에 대한 마진 허용 한도를 초과했을 때 발생합니다. 각 통화에 대한 마진 허용 한도는 현재 인증 수준에 따라 다릅니다.

마진 확장을 위한 자금이 제한되어 있습니다. "마진 부족" 메시지는 현재 해당 마진 풀에 자금이 소진되었음을 나타냅니다. 이는 언제든지 변경될 수 있습니다. 몇 초 또는 몇 분 후에 주문을 성공적으로 제출할 수 있지만, 대량 주문 및 거래량이 많은 시간에 제출된 주문은 더 오래 걸릴 수 있습니다. 불편을 드려 죄송합니다.

이 오류는 계정에 새 포지션을 열기에 충분한 Free Margin이 없거나, 현재 포지션 개설 시도가 계정의 Free Margin을 100% 미만으로 떨어뜨릴 경우 발생합니다.

이 주문을 제출할 수 있는 자금이 부족합니다. 자금을 묶어두고 있을 수 있는 미결 포지션 및 주문을 검토하십시오.

이 자산에 대한 최소 주문량을 충족하지 못했습니다.

귀하의 계정에서 가능한 최대 미결 주문 수를 초과했습니다.

이러한 한도는 귀하의 인증 수준에 따라 결정됩니다. 일부 미결 주문을 취소하거나 계정을 더 높은 수준으로 인증하십시오.

귀하의 계정에서 가능한 최대 미결 포지션 수를 초과했습니다.

이러한 한도는 귀하의 인증 수준에 따라 결정됩니다. 일부 또는 모든 미결 포지션을 청산하거나 정산하거나, 가능하다면 계정을 더 높은 수준으로 인증하십시오.

기존 (미결) 주문을 수정하려 했으나 변경 사항을 성공적으로 완료할 수 없었습니다. 가능한 원인으로는 새 주문에 대한 자금 부족, 일부 부분 체결 시나리오, 일부 레버리지 주문 등이 있습니다.

새 거래량이 이미 체결/충족된 거래량보다 적습니다.

주문 규모가 해당 거래 페어의 마진 포지션 규모 한도를 초과했습니다.

표시 거래량이 최소 주문량을 충족하지 못했습니다.

표시 거래량은 주문 거래량보다 작아야 합니다.

아이스버그 주문은 지정가 주문 외 다른 주문 유형과 호환되지 않습니다.

자금 조달 오류

각 암호화폐는 최대 5개의 새 (미사용) 입금 주소를 가질 수 있으며, 그 이후에 6번째 새 주소를 생성하려는 시도는 오류를 반환합니다.

이 오류는 유효하지 않거나 누락된 "method" 매개변수로 자금 조달 엔드포인트가 호출될 때마다 반환됩니다. 

"key" 입력 매개변수가 계정 관리 (자금 조달 -> 출금) 내에 설정된 주소 설명과 일치하지 않습니다.

통화별 최소 출금 금액은 다르며, 최소 금액 미만의 출금 시도는 이 오류를 발생시킵니다.

이는 자금 조달 요청을 완료할 수 없음을 나타내는 일반적인 오류입니다 (예를 들어, 특정 지역의 고객이 온체인 스테이킹 요청을 시도하면 이 오류가 발생할 수 있습니다).

요청된 출금을 완료할 수 없습니다. 대상 주소에 필수 수취인/수령인 정보가 누락되었기 때문입니다(참고: 이 오류는 현재 캐나다 계정에서 특정 출금에만 적용됩니다).

서비스 상태 오류

현재 겪고 계신 서비스 오류는 일시적인 현상일 것입니다. 요청이 실패한 경우 다시 제출해 보시기 바랍니다. 저희는 문제를 모니터링하고 있으며 다음 페이지를 업데이트할 예정입니다.

https://status.kraken.com/

내부 오류

API 성능 저하 문제가 발생하면, 이는 서비스 이용 불가 메시지 및 사이트 중단과 같은 Kraken의 문제로 이어질 수 있습니다.

이 문제는 계정 보안과 관련이 있으며, 계정이 침해되었을 수 있습니다. 비밀번호와 2단계 인증을 변경하고 고객 지원 센터에 문의해 주십시오.

이 오류는 플래그 또는 입력 매개변수가 일시적 또는 영구적으로 비활성화되었을 때 발생합니다. 오류는 전달된 입력 중 하나에서 발생했을 것입니다. 오류를 발생시킨 호출에 사용된 전체 정보가 포함된 로그를 보내 고객 지원팀에 문의해 주십시오.

이러한 5xx 및 10xx 오류는 실제 API 오류가 아니라 Cloudflare에서 발생하는 웹 서버 오류입니다.

API 오류는 항상 “error”:[“ErrorType:ErrorMessage”]와 같은 JSON 형식으로 반환됩니다. 따라서 다른 형식의 오류(예: HTTP 상태 코드 520, 504, 502, 1020 등)가 수신될 때마다 임시 해결책은 잠시 후 API 호출을 다시 시도하는 것이며, 그러면 호출이 성공할 것입니다.

더 많은 도움이 필요하신가요?