API ত্রুটির বার্তা

সর্বশেষ আপডেট: ৮ আগ, ২০২৫

ভূমিকা

বেশিরভাগ 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 ত্রুটি লুকাতে এবং এর পরিবর্তে একটি কাস্টমাইজড ত্রুটি উপস্থাপন করতে পছন্দ করে, তাই ব্যবহৃত সফ্টওয়্যারের উপর নির্ভর করে একটি বিকল্প ত্রুটি বিন্যাস বা বিষয়বস্তু সম্ভব।

  • সাধারণ ব্যবহারের ত্রুটি

  • রেট লিমিট ত্রুটি

  • ট্রেডিং (অর্ডার স্থাপন/বাতিল) ত্রুটি

  • তহবিল (জমা/উত্তোলন) ত্রুটি

  • পরিষেবার স্থিতি ত্রুটি

  • অভ্যন্তরীণ ত্রুটি

  • ক্লাউডফ্লেয়ার (নেটওয়ার্কিং) ত্রুটি

সাধারণ ব্যবহারের ত্রুটি

API ক্লায়েন্ট যখন এমন একটি কাজ করার চেষ্টা করে যার জন্য API কী-এর অনুমতি নেই, তখন অনুমতি অস্বীকারের ত্রুটিগুলি ফেরত আসে। উদাহরণস্বরূপ, যদি একটি API ক্লায়েন্ট একটি API কী ব্যবহার করে অ্যাকাউন্টের ব্যালেন্স পুনরুদ্ধার করার চেষ্টা করে যা ট্রেডিং অ্যাক্সেসের অনুমতি দেওয়ার জন্য কনফিগার করা হয়েছিল কিন্তু অ্যাকাউন্ট ম্যানেজমেন্ট অ্যাক্সেসের জন্য নয়, তাহলে অনুমতি অস্বীকারের ত্রুটি ফেরত আসবে। আপনি আপনার API কী এবং তাদের সেটিংস (যেমন তাদের অনুমতি) অ্যাকাউন্ট ম্যানেজমেন্টের Settings -> API ট্যাবের মাধ্যমে পর্যালোচনা করতে পারেন। আপনার তৃতীয় পক্ষের অ্যাপগুলি দ্বারা ব্যবহৃত API কীগুলির আপনার অ্যাপগুলির প্রয়োজনীয় সমস্ত সেটিংস এবং অনুমতি রয়েছে তা নিশ্চিত করতে হবে।

এই ত্রুটিটি ফেরত আসে যখন কলের জন্য ব্যবহৃত API কী হয় মেয়াদোত্তীর্ণ বা নিষ্ক্রিয় থাকে, অনুগ্রহ করে আপনার অ্যাকাউন্ট ম্যানেজমেন্টের Settings -> API ট্যাবে API কী পর্যালোচনা করুন অথবা একটি নতুন তৈরি করুন এবং আপনার অ্যাপ্লিকেশন আপডেট করুন।

আপনি আমাদের অ্যাসেট পেয়ারের সম্পূর্ণ তালিকা AssetPairs পাবলিক কল থেকে পেতে পারেন এবং Json হেডারগুলির এন্ট্রি হিসাবে বা "altname" প্যারামিটার দ্বারা পেয়ারের নামটি দেখতে পারেন: https://api.kraken.com/0/public/AssetPairs

এই ত্রুটিটি ফেরত আসে যখন প্রয়োজনীয় প্যারামিটার ছাড়া একটি পদ্ধতি কল করা হয়। উদাহরণস্বরূপ, একটি বৈধ লেনদেন আইডি (txid) প্যারামিটার উল্লেখ না করে QueryOrders পদ্ধতি কল করলে অবৈধ আর্গুমেন্ট ত্রুটি ফেরত আসবে। অপ্রয়োজনীয় প্যারামিটার সহ একটি পদ্ধতি কল করলেও অবৈধ আর্গুমেন্ট ত্রুটি ফেরত আসবে না কারণ অপ্রয়োজনীয় প্যারামিটারগুলি কেবল উপেক্ষা করা হবে।

আপনার প্রোগ্রামে আপনার API কী বা API গোপনীয়তা ভুলভাবে লেখা থাকলে অথবা প্রমাণীকরণে ব্যবহৃত POST ডেটা এবং API-তে পাঠানো POST ডেটা মেলে না থাকলে অবৈধ স্বাক্ষর ত্রুটি ঘটে। অতিরিক্ত রেফারেন্সের জন্য, API স্বাক্ষর অ্যালগরিদম বাস্তবায়নের জন্য নিম্নলিখিতটি একটি উদাহরণ পাইথন কোড। উপযুক্ত 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 গণনা করা হয় ননস মান এবং API পদ্ধতির জন্য POST ডেটা ব্যবহার করে এবং POST ডেটা ননস (আবার) এবং API পদ্ধতির প্যারামিটারগুলির নাম/মান জোড়া নিয়ে গঠিত। TradeBalance পদ্ধতির জন্য SHA256-এ যে ডেটা পাস করা উচিত তার একটি উদাহরণ নিম্নরূপ হবে:SHA256 = SHA256 of "1541933977000nonce=1541933977000&asset=xxbt"SHA256-এ পাস করা স্ট্রিং মানটিতে কোনো অতিরিক্ত নাল (\0) মান থাকা উচিত নয় এবং স্ট্রিং মানটি base64 বা হেক্স হিসাবে এনকোড করা উচিত নয় (অর্থাৎ, স্ট্রিং মানটি একটি প্লেইন টেক্সট স্ট্রিং হওয়া উচিত)।URI পাথ হল API পদ্ধতির সম্পূর্ণ URL, "https://api.kraken.com" উপসর্গ ছাড়া, তাই TradeBalance পদ্ধতির URI পাথ (উদাহরণস্বরূপ) হবে "/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এবং ননস ও ননস উইন্ডো সম্পর্কে আরও তথ্য এখানে:https://support.kraken.com/hc/en-us/articles/360000906023https://support.kraken.com/hc/en-us/articles/360001148023

ওয়েবসকেট এপিআই-এর মাধ্যমে অবৈধ সেশন ত্রুটিগুলি ফেরত আসে যখন একটি প্রমাণীকৃত (ব্যক্তিগত) ফিডে সাবস্ক্রাইব করার চেষ্টা করা হয় একটি প্রমাণীকরণ টোকেন ব্যবহার করে যা আর বৈধ নয় (উদাহরণস্বরূপ, মেয়াদ উত্তীর্ণ হয়ে গেছে)।

সমাধানটি হল REST API GetWebSocketsToken এন্ডপয়েন্টের মাধ্যমে একটি নতুন প্রমাণীকরণ টোকেন অনুরোধ করা এবং পরবর্তী সমস্ত প্রমাণীকৃত (ব্যক্তিগত) সাবস্ক্রিপশন অনুরোধের জন্য নতুন টোকেনটি ব্যবহার করা।

একটি খারাপ অনুরোধ ত্রুটি নির্দেশ করে যে অন্তর্নিহিত HTTP অনুরোধে (পরবর্তী API অনুরোধ নয়) কিছু ভুল আছে, যেমন REST/WebSocket-এর মধ্যে URL অমিল, অথবা HTTP POST ডেটা সঠিকভাবে অন্তর্ভুক্ত না করা:

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

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

এই ত্রুটিটি ফেরত আসে যখন কল করা এন্ডপয়েন্টটি একটি বৈধ এন্ডপয়েন্ট নয়।

রেট লিমিট ত্রুটি

অর্ডার যোগ করা এবং বাতিল করা আমাদের স্ট্যান্ডার্ড API কাউন্টার লিমিটের বিরুদ্ধে গণনা করা হয় না, তবে এই অপারেশনগুলির নিজস্ব যোগ এবং বাতিল অর্ডার কাউন্টার রয়েছে। এই কাউন্টারটি এমনভাবে কাজ করে যেখানে অর্ডার বইতে যত বেশি সময় ধরে অর্ডারগুলি থাকে, ক্লায়েন্টরা তত বেশি অর্ডার যোগ বা বাতিল করতে পারে।

অল্প সময়ের মধ্যে আপনার যদি খুব বেশি ব্যর্থ API কল বা খুব বেশি অবৈধ ননস ত্রুটি বা অবৈধ স্বাক্ষর থাকে তবে অস্থায়ী লকআউট ত্রুটি বার্তাগুলি ঘটতে পারে। যদিও এই কলগুলি একটি ত্রুটি ফেরত দেয়, সেই ত্রুটিটি এখনও আপনার API সীমার বিরুদ্ধে গণনা করা হয় এবং এর ফলে একটি অস্থায়ী লকআউট হতে পারে।

অস্থায়ী লকআউটগুলি প্রায় 15 মিনিট স্থায়ী হয়। অস্থায়ী লকআউট ত্রুটি পাওয়ার পর, কোনো নতুন API অনুরোধ পাঠানোর আগে অনুগ্রহ করে 15 মিনিট অপেক্ষা করুন। আপনি যদি বেশ কয়েকটি অবৈধ ননস ত্রুটি ট্রিগার করেন, তাহলে ননস উইন্ডো বাড়ান কারণ এটি এই ত্রুটিগুলির পুনরাবৃত্তি কমাতে সাহায্য করতে পারে। অনুগ্রহ করে আপনার ব্যক্তিগত API কলগুলির ফ্রিকোয়েন্সি কমাতেও চেষ্টা করুন।

ট্রেডিং ত্রুটি

ট্রেডিং ইঞ্জিন রক্ষণাবেক্ষণের জন্য মার্জিনে নতুন স্পট পজিশন খোলা সাময়িকভাবে স্থগিত করা হয়েছে। এই বৈশিষ্ট্যটি শীঘ্রই ফিরে আসবে এবং আপনি status.kraken.com-এ আপডেটগুলি অনুসরণ করতে পারেন।

অন্যান্য কারণ হতে পারে যে নির্দিষ্ট কিছু দেশে বসবাসকারী ক্লায়েন্টদের জন্য মার্জিনে স্পট পজিশন বর্তমানে উপলব্ধ নয়।

Kraken-এ আপনি একই পেয়ারের জন্য লং এবং শর্ট পজিশন খুলতে পারবেন না।

যদি একই মুদ্রার জন্য লং এবং শর্ট পজিশন খুলতে চান, তাহলে বেস বা কোট মুদ্রা হিসাবে একই মুদ্রা সহ ভিন্ন ট্রেডিং পেয়ার বেছে নিন। উদাহরণ: শর্ট XBT/USD, লং XBT/EUR।

এই ত্রুটিটি ঘটে যখন আপনি আপনার বর্তমান যাচাইকরণ স্তরের জন্য মার্জিন অনুমতির সীমা অতিক্রম করেন। প্রতিটি মুদ্রার জন্য মার্জিন অনুমতির সীমা আপনার বর্তমান যাচাইকরণ স্তরের উপর ভিত্তি করে পরিবর্তিত হয়।

মার্জিন এক্সটেনশনের জন্য আমাদের কাছে সীমিত তহবিল রয়েছে। "অপর্যাপ্ত মার্জিন" বার্তাটি নির্দেশ করে যে বর্তমানে প্রযোজ্য মার্জিন পুলে আমাদের তহবিল ফুরিয়ে গেছে। এটি যেকোনো সময় পরিবর্তিত হতে পারে। আপনি কয়েক সেকেন্ড বা মিনিট পরে আপনার অর্ডার সফলভাবে স্থাপন করতে সক্ষম হতে পারেন, তবে উচ্চ ভলিউমের অর্ডার এবং উচ্চ ভলিউমের সময়ে স্থাপন করা অর্ডারগুলিতে বেশি সময় লাগতে পারে। যেকোনো অসুবিধার জন্য আমরা ক্ষমাপ্রার্থী।

এই ত্রুটিটি ঘটে যখন অ্যাকাউন্টে একটি নতুন পজিশন খোলার জন্য অপর্যাপ্ত ফ্রি মার্জিন থাকে অথবা যদি একটি পজিশন খোলার বর্তমান প্রচেষ্টা অ্যাকাউন্টের ফ্রি মার্জিনকে 100% এর নিচে নামিয়ে দেয়।

এই অর্ডারটি স্থাপন করার জন্য আপনার কাছে পর্যাপ্ত তহবিল নেই। আপনার তহবিল আটকে রাখতে পারে এমন আইটেমগুলির জন্য আপনার খোলা পজিশন এবং অর্ডারগুলি পর্যালোচনা করুন।

আপনি এই অ্যাসেটের জন্য ন্যূনতম অর্ডার ভলিউম পূরণ করেননি।

আপনার অ্যাকাউন্টের জন্য উপলব্ধ খোলা অর্ডারের সর্বোচ্চ পরিমাণ আপনি অতিক্রম করেছেন।

এই সীমাগুলি আপনার যাচাইকরণ স্তরের উপর ভিত্তি করে। অনুগ্রহ করে আপনার কিছু খোলা অর্ডার বন্ধ করুন অথবা আপনার অ্যাকাউন্টকে উচ্চতর স্তরে যাচাই করুন।

আপনার অ্যাকাউন্টের জন্য উপলব্ধ খোলা পজিশনের সর্বোচ্চ পরিমাণ আপনি অতিক্রম করেছেন।

এই সীমাগুলি আপনার যাচাইকরণ স্তরের উপর ভিত্তি করে। অনুগ্রহ করে আপনার কিছু বা সমস্ত খোলা পজিশন বন্ধ করুন বা নিষ্পত্তি করুন অথবা সম্ভব হলে আপনার অ্যাকাউন্টকে উচ্চতর স্তরে যাচাই করুন।

একটি বিদ্যমান (খোলা) অর্ডার সম্পাদনা করার চেষ্টা করা হয়েছিল কিন্তু পরিবর্তনগুলি সফলভাবে সম্পন্ন করা যায়নি। সম্ভাব্য কারণগুলির মধ্যে রয়েছে নতুন অর্ডারের জন্য অপর্যাপ্ত তহবিল, কিছু আংশিক পূরণ পরিস্থিতি এবং কিছু লিভারেজড অর্ডার।

নতুন ভলিউম ইতিমধ্যে সম্পাদিত/পূরণ করা ভলিউমের চেয়ে কম।

অর্ডারটির আকার ট্রেডিং পেয়ারের মার্জিন পজিশন আকারের সীমা অতিক্রম করেছে।

প্রদর্শিত ভলিউম ন্যূনতম অর্ডার ভলিউম পূরণ করেনি।

প্রদর্শিত ভলিউম অর্ডারের ভলিউমের চেয়ে কম হতে হবে।

আইসবার্গ অর্ডারগুলি লিমিট অর্ডার ব্যতীত অন্য কোনো অর্ডারের প্রকারের সাথে সামঞ্জস্যপূর্ণ নয়।

ফান্ডিং ত্রুটি

প্রতিটি ক্রিপ্টোকারেন্সির জন্য সর্বোচ্চ 5টি নতুন (অব্যবহৃত) ডিপোজিট ঠিকানা থাকে, যার পরে 6ষ্ঠ নতুন ঠিকানা তৈরি করার যেকোনো প্রচেষ্টা একটি ত্রুটি ফেরত দেবে।

যখনই ফান্ডিং এন্ডপয়েন্টগুলি একটি অবৈধ বা অনুপস্থিত "method" প্যারামিটার সহ কল করা হয় তখনই এই ত্রুটিটি ফেরত আসে। 

ইনপুট প্যারামিটার "key" অ্যাকাউন্ট ম্যানেজমেন্টের (ফান্ডিং -> উইথড্র-এর মাধ্যমে) মধ্যে সেট করা ঠিকানা বর্ণনার সাথে মেলে না।

মুদ্রা অনুযায়ী ন্যূনতম উত্তোলনের পরিমাণ ভিন্ন হয় এবং ন্যূনতম পরিমাণের নিচে যেকোনো উত্তোলনের প্রচেষ্টা এই ত্রুটির কারণ হবে।

এটি একটি সাধারণ ত্রুটি যা নির্দেশ করে যে একটি ফান্ডিং অনুরোধ সম্পন্ন করা যায়নি (উদাহরণস্বরূপ, নির্দিষ্ট কিছু অবস্থান থেকে ক্লায়েন্টরা অন-চেইন স্টেকিং অনুরোধ করার চেষ্টা করলে এই ত্রুটি দেখা দেবে)।

অনুরোধ করা উত্তোলন সম্পন্ন করা যায়নি, কারণ গন্তব্য ঠিকানায় প্রয়োজনীয় সুবিধাভোগী/প্রাপকের তথ্য অনুপস্থিত (উল্লেখ্য যে এটি বর্তমানে শুধুমাত্র কানাডিয়ান অ্যাকাউন্ট থেকে নির্বাচিত উত্তোলনের ক্ষেত্রে প্রযোজ্য)।

পরিষেবার স্থিতির ত্রুটি

আপনি যে পরিষেবার ত্রুটিগুলি অনুভব করছেন তা শুধুমাত্র অস্থায়ী হওয়া উচিত। আপনার অনুরোধগুলি ব্যর্থ হলে আপনি সেগুলি পুনরায় জমা দিতে চাইতে পারেন। আমরা সমস্যাগুলি পর্যবেক্ষণ করব এবং আমাদের পৃষ্ঠা আপডেট করব:

https://status.kraken.com/

অভ্যন্তরীণ ত্রুটি

যখন আমরা API অবনতির সমস্যার সম্মুখীন হই, তখন এটি Kraken-এর জন্য পরিষেবা অনুপলব্ধ বার্তা এবং সাইট বিভ্রাটের আকারে সমস্যা তৈরি করতে পারে।

এই সমস্যাটি আপনার অ্যাকাউন্টের নিরাপত্তার সাথে সম্পর্কিত যা সম্ভবত আপোস করা হয়েছে। অনুগ্রহ করে আপনার পাসওয়ার্ড এবং দ্বি-স্তর প্রমাণীকরণ পরিবর্তন করুন এবং আমাদের সহায়তা কেন্দ্রের সাথে যোগাযোগ করুন।

এই ত্রুটি ঘটে যখন একটি ফ্ল্যাগ বা ইনপুট প্যারামিটার অস্থায়ীভাবে বা স্থায়ীভাবে নিষ্ক্রিয় করা হয়। ত্রুটিটি পাস করা ইনপুটগুলির মধ্যে একটি থেকে আসা উচিত, অনুগ্রহ করে ত্রুটি তৈরি করা কলের জন্য ব্যবহৃত সম্পূর্ণ তথ্য সহ একটি লগ পাঠিয়ে আমাদের সহায়তার সাথে যোগাযোগ করুন।

এই 5xx এবং 10xx ত্রুটিগুলি আসলে API ত্রুটি নয়, বরং Cloudflare থেকে আসা ওয়েব সার্ভার ত্রুটি।

API ত্রুটিগুলি সর্বদা JSON ফরম্যাটে ফেরত দেওয়া হয় যেমন “error”:[“ErrorType:ErrorMessage”], তাই যখনই একটি ভিন্ন ফরম্যাটে ত্রুটি পাওয়া যায় (যেমন 520, 504, 502, 1020 ইত্যাদির HTTP স্ট্যাটাস কোড), তখন অন্তর্বর্তী সমাধান হল অল্প সময়ের পরে আবার API কল করার চেষ্টা করা এবং আশা করা যায় যে কলটি সফল হবে।

আরও সাহায্যের প্রয়োজন?