NAGAD API v3.3

Developer Portal & Reference

Simulator
Error Codes Reference

Error Codes & Troubleshooting Guide

নগদ গেটওয়ে ইন্টিগ্রেশনের সময় যেকোনো ত্রুটির কোড (16_0006_xxx), তার কারণ ও সমাধানের বিস্তারিত তালিকা নিচে দেওয়া হলো।

Error Response Format

যেকোনো রিকোয়েস্ট ফেইল করলে নগদ সার্ভার এই JSON ফরম্যাটে এরর রিটার্ন করে:

{
  "reason": "16_0006_058",
  "message": "Failed to verify signature"
}

Complete Error Codes Encyclopedia

Error Code Message Root Cause (কারণ) How to Fix (সমাধান)
16_0006_004 Provided merchant ID is invalid URL বা বডিতে দেওয়া মার্চেন্ট আইডি ভুল। নগদ পোর্টাল থেকে সঠিক ১৫ ডিজিটের Merchant ID ব্যবহার করুন।
16_0006_050 Provided merchant ID is invalid Path variable-এর সাথে sensitiveData-র merchantId মিল নেই। দুটো স্থানে একই merchantId প্রদান করুন।
16_0006_052 Invalid Merchant মার্চেন্ট আইডি সিস্টেমে রেজিস্টার্ড নেই। সঠিক এনভায়রনমেন্টে (Sandbox vs Live) অ্যাকাউন্ট নিশ্চিত করুন।
16_0006_053 Inactive Merchant অ্যাকাউন্টটি এখনো এক্টিভ হয়নি বা ব্লকড। নগদ অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন।
16_0006_056 Encryption failed Nagad সার্ভার সাইডে এনক্রিপশন ফেইল করেছে। পোর্টালে আপলোড করা Merchant Public Key সঠিক কিনা যাচাই করুন।
16_0006_057 Decryption failed নগদ পাবলিক কি দিয়ে ঠিকমতো এনক্রিপ্ট করা হয়নি। RSA PKCS1Padding এবং Nagad Public Key ব্যবহার নিশ্চিত করুন।
16_0006_058 Failed to verify signature মার্চেন্ট প্রাইভেট কি দিয়ে সাইন করা সিগনেচার মেলেনি। SHA1withRSA ব্যবহার করুন এবং পোর্টালে আপলোড করা পাবলিক কি-র সাথে ম্যাচিং প্রাইভেট কি দিয়ে সাইন করুন।
16_0006_059 Invalid Sensitive Data sensitiveData-র ভেতরের JSON ফরম্যাট ভুল। JSON কী-গুলোর নাম ও ভ্যালু সঠিক স্পেলিংয়ে লিখুন।
16_0006_061 Invalid merchant key মার্চেন্টের কি ভ্যালিড নয় বা ফরম্যাট নষ্ট। 2048-bit RSA PEM ফরম্যাটের কি পোর্টালে আবার আপলোড করুন।
16_0006_064 Mandatory Header Missing X-KM-IP-V4, X-KM-Client-Type বা X-KM-Api-Version মিসিং। HTTP Request-এ প্রয়োজনীয় ৩টি হেডারই যুক্ত করুন।
16_0006_068 Invalid Order Id অর্ডার আইডি ৫ অক্ষরের কম অথবা ২০ অক্ষরের বেশি। Order ID দৈর্ঘ্য ৫ থেকে ২০ অক্ষরের মধ্যে রাখুন।
16_0006_076 Transaction Date Time Not in allowed window আপনার সার্ভারের ঘড়ির সময় নগদের সার্ভার সময়ের সাথে মিলছে না। সার্ভারে NTP Time Sync ঠিক করুন এবং UTC+6 বর্তমান সময় পাঠান।
16_0006_081 Invalid Date Time Format dateTime ফিল্ডটি ভুল ফরম্যাটে পাঠানো হয়েছে। ঠিক 14 ডিজিটের yyyyMMddHHmmss ফরম্যাট ব্যবহার করুন।
16_0006_083 Duplicate Order ID in same day একই দিনে একই orderId একাধিকবার ইনিশিয়ালাইজ করা হয়েছে। প্রতিটি পেমেন্ট ট্রাইয়ের জন্য ইউনিক Order ID জেনারেট করুন।
16_0006_055 Invalid Payment Reference Id paymentRefId মিসিং, এক্সপায়ার্ড বা ভুল। Initialize থেকে প্রাপ্ত অক্ষত paymentReferenceId পাঠান।
16_0006_080 Invalid Currency Code BDT কারেন্সির কোড "050" ছাড়া অন্য কিছু দেওয়া হয়েছে। currencyCode ফিল্ডে সর্বদা "050" ব্যবহার করুন।

Top 3 Most Common Integration Traps & Quick Fixes

1. Error: 16_0006_058 (Failed to verify signature)

কারণ: সাইন করার সময় যে প্রাইভেট কি ব্যবহার করা হয়েছে, নগদ পোর্টালে তার অনুরূপ পাবলিক কি আপলোড করা নেই অথবা JSON স্ট্রিং-এ স্পেস/অর্ডারিং অমিল হয়েছে।

সমাধান: নতুন করে OpenSSL দিয়ে একজোড়া (Private + Public) কি জেনারেট করে পাবলিক কি-টি পোর্টালে আপলোড করুন এবং SHA1withRSA অ্যালগরিদম নিশ্চিত করুন।

2. Error: 16_0006_076 / 16_0006_081 (Date Time Issue)

কারণ: তারিখের ফরম্যাটে কোনো ড্যাশ (-), কোলন (:) বা ভুল টাইমজোন পাঠানো হলে এই সমস্যা হয়।

সমাধান: স্ট্রিংটি অবশ্যই হুবহু 14 অক্ষরের হতে হবে (যেমন: 20260909120000)।

3. Error: 16_0006_083 (Duplicate Order ID)

কারণ: একই দিনে ইতিপূর্বে চেষ্টা করা কোনো অর্ডার আইডি দিয়ে পুনরায় Initialize কল করা হলে নগদ এটি রিজেক্ট করে।

সমাধান: প্রতিবার পেমেন্ট শুরু করার সময় একটি নতুন প্রিফিক্স বা টাইমস্ট্যাম্প যুক্ত করুন (যেমন: ORD_101_1725859200)।