এরর কোড ও HTTP স্ট্যাটাস

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

রিসেলার API যে 42টি কোড ফেরত দিতে পারে, সবগুলো এখানে সমস্যার ধরন অনুযায়ী সাজানো। প্রতিটির পাশে লেখা আছে কোন HTTP স্ট্যাটাসে সেটি আসে এবং কী বদলালে সমাধান হয়।

অথেন্টিকেশন (401)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
MISSING_API_KEY401API key প্রয়োজনAuthorization হেডার পাঠানো হয়নি, অথবা হেডারের ফরম্যাট সঠিক নয়।হেডারটি যোগ করুন: Authorization: Bearer <keyId>.<secret>action: FIX_INPUT · retryable: false · retry_after: null
INVALID_API_KEY401API key সঠিক নয়আপনার দেওয়া API key সিস্টেমে চালু থাকা কোনো key-এর সাথে মিলছে না।আপনার API কী-এর আইডি আর সিক্রেট ঠিক আছে কি না মিলিয়ে দেখুন। দরকার হলে API অ্যাক্সেস প্যানেল থেকে কী নতুন করে তৈরি করুন।action: FIX_INPUT · retryable: false · retry_after: null

অথরাইজেশন (403)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
ACCOUNT_DISABLED403অ্যাকাউন্ট নিষ্ক্রিয়এই কোড এখন আর পাঠানো হয় না। অর্ডার দিতে না পারা অ্যাকাউন্টের ক্ষেত্রে উত্তর আসে ACCOUNT_FROZEN (HTTP 403)।এর বদলে ACCOUNT_FROZEN হ্যান্ডল করুন।এখন আর ফেরত আসে না, এর জায়গায় ACCOUNT_FROZEN
ACCOUNT_FROZEN403অ্যাকাউন্ট ফ্রিজ করা আছেআপনার অ্যাকাউন্ট সাময়িকভাবে ফ্রিজ করা হয়েছে। সাধারণত সন্দেহজনক কার্যকলাপের কারণে এমন হয়।আপনার অ্যাকাউন্ট আবার চালু করতে সাপোর্টে যোগাযোগ করুন।action: CONTACT_SUPPORT · retryable: false · retry_after: null
IP_NOT_ALLOWED403IP অ্যাড্রেস অনুমোদিত তালিকায় নেইরিকোয়েস্টটি এমন একটি IP অ্যাড্রেস থেকে এসেছে, যা আপনার API key-এর অনুমোদিত তালিকায় নেই।API Access প্যানেলে গিয়ে আপনার সার্ভারের IP অনুমোদিত তালিকায় যোগ করুন, অথবা IP সীমাবদ্ধতা তুলে দিন।action: FIX_INPUT · retryable: false · retry_after: null

রিকোয়েস্ট যাচাই (400)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
MISSING_REQUIRED_FIELD400প্রয়োজনীয় ফিল্ড দেওয়া হয়নিরিকোয়েস্ট বডিতে একটি প্রয়োজনীয় ফিল্ড নেই। প্লেয়ার রিকোয়ারমেন্টের ক্ষেত্রে details.field-এ বাদ পড়া ফিল্ডের নাম থাকে।আগে এন্ডপয়েন্টের ডকুমেন্টেশন দেখে নিন। প্লেয়ারের তথ্য কোন কোন ফিল্ডে লাগবে, তা জানতে GET /catalog/category/:categoryId/requirements কল করুন। তারপর আবশ্যক প্রতিটি ফিল্ড রিকোয়েস্টে পাঠান, একটিও বাদ দেবেন না।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_PARAMETER_FORMAT400একটি প্যারামিটারের ফরম্যাট ভুলএকটি রিকোয়ারমেন্ট ফিল্ডের ফরম্যাট ভুল (যেমন সংখ্যার ফিল্ডে লেখা দেওয়া হয়েছে)। কোন ফিল্ড, তা details.field-এ দেওয়া থাকে।ক্যাটাগরির রিকোয়ারমেন্ট আবার দেখুন, তারপর ফিল্ডটি তার data_type ও ভ্যালিডেশন রুল অনুযায়ী ফরম্যাটে পাঠান।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_PARAMETER_VALUE400একটি প্যারামিটারের মান সঠিক নয়একটি রিকোয়ারমেন্ট ফিল্ডের মান অনুমোদিত সীমার বাইরে (সর্বনিম্নের চেয়ে কম, সর্বোচ্চের চেয়ে বেশি, অথবা select_options-এর কোনোটির সাথে মেলে না)। details.field-এ ফিল্ডের নাম থাকে।ক্যাটাগরির নিয়ম অনুযায়ী ওই ফিল্ডে গ্রহণযোগ্য মান পাঠান।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_PARAMETER_LENGTH400একটি প্যারামিটারের দৈর্ঘ্য সঠিক নয়রিকোয়ারমেন্ট ফিল্ডের দৈর্ঘ্য অনুমোদিত সীমার চেয়ে কম বা বেশি। কোন ফিল্ডে সমস্যা, details.field দেখলে জানা যাবে।ক্যাটাগরির রিকোয়ারমেন্ট তালিকায় থাকা min_length আর max_length দেখে নিন। মানের দৈর্ঘ্য যেন এই সীমার মধ্যে থাকে।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_UUID_FORMAT400UUID ফরম্যাট সঠিক নয়অর্ডারের জন্য আপনার পাঠানো order_id সঠিক UUID ফরম্যাটে নেই।UUID-এর যেকোনো বৈধ ভার্সন ব্যবহার করতে পারেন, যেমন v1, v4, v7 ইত্যাদি। আইডিটি অবশ্যই এই ফরম্যাটে হতে হবে: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx। এখানে প্রতিটি x মানে একটি হেক্সাডেসিমাল অক্ষর।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_QUANTITY400পরিমাণ সঠিক নয়পরিমাণ একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে।quantity হিসেবে 1 বা তার বেশি একটি পূর্ণসংখ্যা দিন (>= 1)।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_CATEGORY_ID400ক্যাটাগরি ID সঠিক নয়categoryId হিসেবে আপনি যে মান পাঠিয়েছেন, সেটি বৈধ কোনো সংখ্যা নয়।বৈধ ক্যাটাগরি আইডি খুঁজে পেতে ক্যাটালগ এক্সপ্লোরার ব্যবহার করুন, অথবা সরাসরি GET /catalog/categories কল করুন।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_BIG_CATEGORY_ID400বিগ ক্যাটাগরি ID সঠিক নয়bigCategoryId হিসেবে আপনি যে মান পাঠিয়েছেন, সেটি বৈধ কোনো সংখ্যা নয়।বৈধ বিগ ক্যাটাগরি আইডি খুঁজে পেতে ক্যাটালগ এক্সপ্লোরার ব্যবহার করুন, অথবা সরাসরি GET /catalog/big-categories কল করুন।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_ITEM_ID400আইটেম ID সঠিক নয়দেওয়া আইটেম ID বৈধ নয়।বৈধ আইটেম আইডি খুঁজে পেতে ক্যাটালগ এক্সপ্লোরার ব্যবহার করুন, অথবা সরাসরি GET /catalog/subcategories কল করুন।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_SUBCATEGORY400সাবক্যাটাগরি সঠিক নয়এমন কোনো সাবক্যাটাগরি ID নেই।ক্যাটালগ এন্ডপয়েন্ট দিয়ে sub_category_id যাচাই করুন।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_PRODUCT_CONFIG400প্রোডাক্ট কনফিগারেশন সঠিক নয়এই কোড এখন আর পাঠানো হয় না। কোনো রিকোয়ারমেন্ট ফিল্ড বাদ পড়লে এখন MISSING_REQUIRED_FIELD আসে, আর যে প্রোডাক্ট এই মুহূর্তে বিক্রি করা যাচ্ছে না তার জন্য আসে PRODUCT_UNAVAILABLE।এর পরিবর্তে MISSING_REQUIRED_FIELD এবং PRODUCT_UNAVAILABLE ত্রুটি সামলানোর ব্যবস্থা করুন।এখন আর ফেরত আসে না, এর জায়গায় MISSING_REQUIRED_FIELD
INVALID_PAGINATION400পেজিনেশন প্যারামিটার সঠিক নয়page বা limit-এর মান অনুমোদিত সীমার বাইরে।page-এর মান >= 1 দিন, আর limit রাখুন 1 থেকে 100-এর মধ্যে।action: FIX_INPUT · retryable: false · retry_after: null
INVALID_DATE_FORMAT400তারিখের ফরম্যাট সঠিক নয়created_after বা created_before প্যারামিটারে আপনি যে তারিখ পাঠিয়েছেন, সেটি বৈধ ISO 8601 তারিখ নয়। এই দুই প্যারামিটারে শুধু ISO 8601 ফরম্যাটের তারিখই গ্রহণ করা হয়।ISO 8601 ফরম্যাট ব্যবহার করুন: 2024-01-01T00:00:00Z।action: FIX_INPUT · retryable: false · retry_after: null

প্লেয়ার যাচাই (400 / 429 / 503)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
PLAYER_NOT_FOUND400প্লেয়ার পাওয়া যায়নিগেম থেকে নিশ্চিত হওয়া গেছে যে এই Player ID-র কোনো অস্তিত্ব নেই। শুধু নিশ্চিত উত্তর পেলেই এই কোড আসে। ID যাচাই করা না গেলে এর বদলে PLAYER_CHECK_UNAVAILABLE পাবেন।Player ID সঠিক আছে কিনা যাচাই করুন। এই গেমে zone_id লাগে কিনা সেটাও দেখে নিন।action: FIX_INPUT · retryable: false · retry_after: null
PLAYER_CHECK_UNAVAILABLE503এই গেমের Player ID এখন যাচাই করা যাচ্ছে নাএই মুহূর্তে এই গেমের Player ID যাচাই করা যাচ্ছে না। Player ID ভুল বলে শনাক্ত করা হয়নি।একই রিকোয়েস্ট retry_after সেকেন্ড পর আবার পাঠান। আপনার কাস্টমারকে ID ভুল বলে জানাবেন না।action: RETRY_LATER · retryable: true · retry_after: 60
PLAYER_BUSY429এই Player ID ইতিমধ্যে চেক করা হচ্ছেএকই Player ID-র জন্য আরেকটি রিকোয়েস্ট এখনও চেক হচ্ছে।retry_after সেকেন্ড পর রিকোয়েস্টটি আবার পাঠান।action: RETRY_SOON · retryable: true · retry_after: 5
PLAYER_VALIDATION_FAILED400প্লেয়ার যাচাই ব্যর্থ হয়েছেএই এররটি এখন আর ফেরত দেওয়া হয় না। যে Player ID এই মুহূর্তে চেক করা যাচ্ছে না, তার জন্য PLAYER_CHECK_UNAVAILABLE (HTTP 503) আসে।এই এররটি আলাদাভাবে না ধরে তার বদলে আপনার ইন্টিগ্রেশনে PLAYER_CHECK_UNAVAILABLE এরর কোডটি হ্যান্ডেল করুন।এখন আর ফেরত আসে না, এর জায়গায় PLAYER_CHECK_UNAVAILABLE
REGION_MISMATCH400এই প্লেয়ারের রিজিয়নে প্রোডাক্টটি ডেলিভারি করা যাবে নাপ্লেয়ারের রিজিয়নে এই প্রোডাক্ট ডেলিভারি করা যায় না। এররে player_region ও player_name দেওয়া থাকে।প্লেয়ারের রিজিয়ন অনুযায়ী প্রোডাক্ট বেছে নিন।action: CHOOSE_OTHER · retryable: false · retry_after: null

বিজনেস রুল (400 / 409)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
INSUFFICIENT_BALANCE400ওয়ালেটে যথেষ্ট ব্যালেন্স নেইএই অর্ডারটি সম্পন্ন করার মতো ব্যালেন্স আপনার ওয়ালেটে নেই।অর্ডার দেওয়ার আগে রিলোড পেজ থেকে ওয়ালেট টপ আপ করুন।action: TOP_UP · retryable: false · retry_after: null
OUT_OF_STOCK400প্রোডাক্ট স্টকে নেইআপনি যে প্রোডাক্টটি চেয়েছেন, সেটি এখন স্টকে নেই।পরে আবার চেষ্টা করুন অথবা অন্য একটি প্রোডাক্ট বেছে নিন।action: RETRY_LATER · retryable: true · retry_after: null
INSUFFICIENT_STOCK400চাওয়া সংখ্যার চেয়ে কম ইউনিট পাওয়া যাচ্ছেআপনি যত ইউনিট অর্ডার করেছেন, স্টকে তার চেয়ে কম আছে। OUT_OF_STOCK থেকে পার্থক্য হলো, এখানে কম পরিমাণে অর্ডার করা যাবে: এখন সর্বোচ্চ কত ইউনিট অর্ডার করতে পারবেন, তা error.max_quantity-তে দেওয়া আছে। কোনো টাকা কাটা হয়নি।অর্ডারের পরিমাণ কমিয়ে error.max_quantity বা তার নিচে আনুন, তারপর অর্ডারটি আবার পাঠান।action: FIX_INPUT · retryable: false · retry_after: null
PRODUCT_UNAVAILABLE409এই প্রোডাক্ট সাময়িকভাবে পাওয়া যাচ্ছে নাপ্রোডাক্টটি আছে, তবে এই মুহূর্তে বিক্রি করা যাচ্ছে না।পরে আবার চেষ্টা করুন, অথবা অন্য কোনো প্রোডাক্ট বেছে নিন।action: RETRY_LATER · retryable: true · retry_after: null
PRICING_UPDATING409প্রোডাক্টের দাম আপডেট হচ্ছেএই পণ্যের দাম আপডেট করা হচ্ছে।retry_after সেকেন্ড পর একই রিকোয়েস্ট আবার পাঠান, তারপর দামটা আরেকবার দেখে নিন।action: RETRY_SOON · retryable: true · retry_after: 30
OFFER_NOT_FOUND400এই প্লেয়ার অ্যাকাউন্টের জন্য অফারটি পাওয়া যাচ্ছে নাএকবারের অফার (যেমন প্রথম টপ আপের বোনাস) এই প্লেয়ার অ্যাকাউন্টে পাওয়া যাচ্ছে না। হয়তো অফারটি আগেই ব্যবহার করা হয়েছে।এই প্লেয়ারের জন্য অন্য একটি প্রোডাক্ট বেছে নিন।action: CHOOSE_OTHER · retryable: false · retry_after: null
DUPLICATE_ORDER409ডুপ্লিকেট অর্ডার IDএই UUID-তে একটি অর্ডার আগে থেকেই আছে। এটি idempotency সুরক্ষার অংশ।নতুন অর্ডারের জন্য নতুন UUID তৈরি করুন। রিট্রাই করার সময় এই এরর পেলে বুঝবেন প্রথম চেষ্টাতেই অর্ডার হয়ে গেছে: আরেকটি অর্ডার না বানিয়ে GET /orders/{orderId} দিয়ে সেই অর্ডারটি দেখে নিন।action: CHECK_ORDER · retryable: false · retry_after: null
PRICE_INCREASED400দাম প্রত্যাশার চেয়ে বেড়ে গেছেরিকোয়েস্টে আপনি expected_unit_price হিসেবে যে দাম দিয়েছিলেন, প্রতি ইউনিটের বর্তমান দাম তার চেয়ে বেশি।সর্বশেষ দাম জানতে GET /catalog/subcategory/:id/price এন্ডপয়েন্টে রিকোয়েস্ট পাঠান, যেখানে :id হলো যে সাবক্যাটাগরির দাম দরকার তার আইডি। তারপর নতুন দাম অনুযায়ী আপনার রিকোয়েস্টের expected_unit_price মানটি আপডেট করুন।action: FIX_INPUT · retryable: false · retry_after: null
SUBCATEGORY_DISABLED400সাবক্যাটাগরিটি বন্ধ আছেএখন আর এই এরর আসে না। যে প্রোডাক্ট এই মুহূর্তে বিক্রি করা যাচ্ছে না, তার জন্য PRODUCT_UNAVAILABLE (HTTP 409) ফেরত আসে।আপনার ইন্টিগ্রেশনে এর বদলে PRODUCT_UNAVAILABLE এরর কোডটি ধরে সেই অনুযায়ী ব্যবস্থা নিন।এখন আর ফেরত আসে না, এর জায়গায় PRODUCT_UNAVAILABLE

পাওয়া যায়নি (404)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
ORDER_NOT_FOUND404অর্ডার পাওয়া যায়নিএই অর্ডার ID দিয়ে কোনো অর্ডার পাওয়া যায়নি।অর্ডার ID ঠিক আছে কিনা যাচাই করুন।action: FIX_INPUT · retryable: false · retry_after: null
ITEM_NOT_FOUND404আইটেম পাওয়া যায়নিআপনি যে ক্যাটালগ আইটেমটি চেয়েছেন, সেটি নেই।সঠিক আইটেম ID খুঁজতে ক্যাটালগ এন্ডপয়েন্টগুলো ব্যবহার করুন।action: FIX_INPUT · retryable: false · retry_after: null
NO_REQUIREMENTS_FOUND404এই ক্যাটাগরির কোনো রিকোয়ারমেন্ট পাওয়া যায়নিএই মুহূর্তে এই ক্যাটাগরির জন্য কোনো প্লেয়ার রিকোয়ারমেন্ট নেই।পরে আবার চেষ্টা করুন, অথবা অন্য ক্যাটাগরি বেছে নিন।action: RETRY_LATER · retryable: true · retry_after: null
ITEM_NOT_AVAILABLE404আইটেম পাওয়া যাচ্ছে নাএই এরর এখন আর ফেরত আসে না। কোনো আইটেম থাকলেও যদি এই মুহূর্তে বিক্রি করা না যায়, তাহলে PRODUCT_UNAVAILABLE (HTTP 409) আসে।এর বদলে PRODUCT_UNAVAILABLE হ্যান্ডেল করুন।এখন আর ফেরত আসে না, এর জায়গায় PRODUCT_UNAVAILABLE

ব্যাচ রিকোয়েস্ট যাচাই (400)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
INVALID_ORDER_IDS_FORMAT400অর্ডার আইডির অ্যারে (order_ids) সঠিক ফরম্যাটে নেইorder_ids ফিল্ডে স্ট্রিংয়ের একটি অ্যারে দিতে হবে।অর্ডার আইডিগুলো একটি অ্যারের ভেতরে রেখে ঠিক এই উদাহরণের ফরম্যাট মেনে পাঠান: { "order_ids": ["uuid1", "uuid2"] }।action: FIX_INPUT · retryable: false · retry_after: null
EMPTY_ORDER_IDS400অর্ডার আইডির অ্যারে (order_ids) খালি পাঠানো হয়েছেorder_ids অ্যারেতে অন্তত একটি অর্ডার আইডি থাকতে হবে।অ্যারেতে অন্তত একটি অর্ডার ID দিন।action: FIX_INPUT · retryable: false · retry_after: null
TOO_MANY_ORDER_IDS400অর্ডার ID অনেক বেশিএকবারে সর্বোচ্চ 50টি অর্ডার ID কোয়েরি করা যায়।রিকোয়েস্ট ভাগ করে প্রতি ব্যাচে 50টি বা তার কম রাখুন।action: FIX_INPUT · retryable: false · retry_after: null

রেট লিমিট (429)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
RATE_LIMIT_EXCEEDED429রেট লিমিট পেরিয়ে গেছেআপনি এই এন্ডপয়েন্টের জন্য নির্ধারিত রিকোয়েস্ট লিমিট ছাড়িয়ে গেছেন। যেসব লিমিট প্রতি মিনিট ধরে হিসাব হয়, অর্থাৎ ক্যাটালগ, অর্ডার ও অ্যাকাউন্ট বাকেট, সেগুলো প্রতিটি রেসপন্সের সাথেই X-RateLimit-Limit, X-RateLimit-Remaining ও X-RateLimit-Reset নামের তিনটি হেডার পাঠায়। এর পাশাপাশি রেসপন্সের details অবজেক্টে limit, remaining (এখানে 0), retry_after ও window_seconds ফিল্ডগুলো আরেকবার দেওয়া থাকে। তবে POST /player/validate এন্ডপয়েন্টটি প্রতি মিনিটের বাকেটে গোনা হয় না, এর বদলে এটি আপনার দৈনিক প্লেয়ার চেক কোটা থেকে কাটা হয়। এই এন্ডপয়েন্টটি ওপরের কোনো হেডারই পাঠায় না, আর কোটা শেষ হলে এর 429 রেসপন্সে error অবজেক্টের ভেতরেই limit, current, remaining, reset_at ও reset_in_seconds ফিল্ডগুলো পাওয়া যায়। রেট লিমিট যেভাবেই হিসাব হোক না কেন, আবার চেষ্টা করার আগে কত সেকেন্ড অপেক্ষা করতে হবে তা error.retry_after ফিল্ড এবং রেসপন্সের Retry-After হেডার, দুই জায়গা থেকেই জানতে পারবেন।আবার চেষ্টা করার আগে retry_after বা Retry-After হেডারে যত সেকেন্ড দেওয়া আছে, ততক্ষণ অপেক্ষা করুন। প্রতি মিনিটের এন্ডপয়েন্টগুলোতে X-RateLimit-Remaining খেয়াল রাখুন, যাতে লিমিটে একেবারেই না পৌঁছান।action: RETRY_LATER · retryable: true · retry_after: সেকেন্ড পর রিসেট

সার্ভার সাইড (5xx)

কোডHTTP স্ট্যাটাস কোডমানেসমাধান
INTERNAL_ERROR500ইন্টারনাল সার্ভার এররসার্ভারে একটি অপ্রত্যাশিত সমস্যা হয়েছে।retry_after সেকেন্ড পর রিকোয়েস্টটি আবার পাঠান। POST /orders/create-এর ক্ষেত্রে একই order_id আবার ব্যবহার করুন, তাহলে অর্ডার কখনো দুবার তৈরি হবে না। সমস্যা থেকে গেলে সাপোর্টে যোগাযোগ করুন।action: RETRY_LATER · retryable: true · retry_after: 30
SERVICE_UNAVAILABLE503সার্ভিস সাময়িকভাবে পাওয়া যাচ্ছে নাএখন আর এটি ফেরত দেওয়া হয় না। সার্ভারের দিকের সমস্যায় INTERNAL_ERROR (HTTP 500) আসে; 503 আসে কেবল PLAYER_CHECK_UNAVAILABLE-এর বেলায়, যখন কোনো Player ID এই মুহূর্তে চেক করা যায় না।এর বদলে আপনার ইন্টিগ্রেশনের কোডে INTERNAL_ERROR এবং PLAYER_CHECK_UNAVAILABLE, এই দুটি এরর কোড আলাদা করে ধরুন এবং প্রতিটির জন্য উপযুক্ত ব্যবস্থা নিন।এখন আর ফেরত আসে না, এর জায়গায় INTERNAL_ERROR

প্ল্যাটফর্মে নতুন হলে রিসেলারদের জন্য গেম টপ আপ API ওভারভিউ, অথবা SHOP2TOPUP রিসেলার প্রোগ্রামের পরিচিতি পড়ে জেনে নিন পার্টনার অ্যাকাউন্ট কীভাবে কাজ করে।

API এরর কোড রেফারেন্স: প্রতিটি কোড ও তার সমাধান