NAGAD API v3.3

Developer Portal & Reference

Step 3 of 3
GET /remote-payment-gateway-1.0/api/dfs/verify/payment/{paymentRefId}

Verify Payment Status API

কাস্টমার পেমেন্ট সম্পন্ন করে আপনার সাইটে ফেরত আসার পর সার্ভার-টু-সার্ভার রিকোয়েস্ট পাঠিয়ে পেমেন্টের সত্যতা এবং ফাইনাল স্ট্যাটাস ভেরিফাই করতে হয়। এই এপিআই-এর রেসপন্সে ট্রানজেকশন রেফারেন্স (issuerPaymentRefNo), পেইড অ্যামাউন্ট ও স্ট্যাটাস পাওয়া যায়।

GET https://{NAGAD_HOST}/remote-payment-gateway-1.0/api/dfs/verify/payment/{paymentRefId}
Stateless GET

Request Headers

Header Requirement Allowed Values Description
X-KM-IP-V4 Mandatory "103.100.12.34" Client / Server public IPv4 address.
X-KM-Client-Type Mandatory PC_WEB | MOBILE_WEB | MOBILE_APP Client channel identifier.
X-KM-Api-Version Mandatory "v-0.2.0" API Protocol version.

Verification API Code Implementation

curl -X GET "http://sandbox.mynagad.com:10080/remote-payment-gateway-1.0/api/dfs/verify/payment/MTEwNzE2NTMxODgwNC42ODc0NTAwMDAwMzEzMjQuTkFHMTU3MzEyMzk5MzE1NzMuZDA3Mjg5YTQxNDRhNWVjYzcxYjU=" \
  -H "X-KM-IP-V4: 103.100.12.34" \
  -H "X-KM-Client-Type: PC_WEB" \
  -H "X-KM-Api-Version: v-0.2.0"

Verification Response Body Structure

Field Name Data Type Req Example Value Description
status Enum M "Success" Final transaction status: Success, Failed, Cancelled, Aborted
statusCode String O "00_000_00" Result error or success code.
issuerPaymentRefNo String O "70IZV6G7" Official Nagad Transaction ID (TrxID) for customer and merchant reconciliation.
paymentRefId String M "MTEwNzE2NT..." Internal Nagad session reference id.
orderId String M "NAG1573123993" Merchant's order ID.
amount String M "130" / "1790.00" Total amount paid by the customer.
issuerPaymentDateTime String O "20260909165357" Date and time transaction executed on Nagad side.
clientMobileNo String O "01701892123" / null Payee mobile number (masked or null in certain flows).
Example JSON Response from Verify Endpoint:
{
  "merchantId": "687450000031324",
  "orderId": "NAG15731239931573",
  "paymentRefId": "MTEwNzE2NTMxODgwNC42ODc0NTAwMDAwMzEzMjQuTkFHMTU3MzEyMzk5MzE1NzMuZDA3Mjg5YTQxNDRhNWVjYzcxYjU=",
  "amount": "1790.00",
  "clientMobileNo": null,
  "merchantMobileNo": "01745000003",
  "orderDateTime": null,
  "issuerPaymentDateTime": "20260909165357",
  "issuerPaymentRefNo": "70IZV6G7",
  "additionalMerchantInfo": null,
  "status": "Success",
  "statusCode": "00_000_00"
}

Production Security Checklist

Verify Amount Match: সর্বদা ডেটাবেজের অর্ডারের টাকার পরিমাণ এবং ভেরিফিকেশন API-এর amount ফিল্ডের মান সমান কিনা মিলিয়ে নিন।
Prevent Double Verification: একটি অর্ডার একবার Success হলে যাতে দ্বিতীয়বার স্ট্যাটাস পরিবর্তন না হয় সেই চেক রাখুন (Idempotent)।
Store issuerPaymentRefNo: নগদের ট্রানজেকশন আইডি (issuerPaymentRefNo) ডেটাবেজে সেভ করুন যেন রিফান্ড বা কাস্টমার সাপোর্টে কাজে লাগে।
Verify status === "Success": শুধুমাত্র status: "Success" পেলেই প্রোডাক্ট ডেলিভারি বা ব্যালেন্স আপডেট করুন।