डेवलपर दस्तावेज़

भुगतान और ऑर्डर स्थिति जाँचें

व्यापारी ऑर्डर ID से जाँचें। पुष्टि, सूचना पहुँचने और ऑर्डर डिलीवरी को अलग समझें।

POST /api/v1/order/status

प्रमाणीकरण का अनुरोध करें

X-Bolt-Key, X-Bolt-Timestamp और X-Bolt-Signature शामिल करें। वर्तमान मिलीसेकंड timestamp का उपयोग करें और सटीक अनुरोध निकाय के साथ timestamp पर हस्ताक्षर करें।

01. अनुरोध पैरामीटर

application/json
externalOrderIdआवश्यक
String

व्यापारी को ऑर्डर बनाते समय उपयोग किया गया externalOrderId भेजें, orderToken नहीं। केवल वर्तमान API कुंजी से संबंधित ऑर्डर के बारे में पूछताछ की जा सकती है।

उदाहरण मान

{"externalOrderId": "INV-20260209-99281"}

आवश्यक स्ट्रिंग, 6-64 अक्षर। अक्षर, अंक, अंडरस्कोर (_) और हाइफ़न (-) की अनुमति है।

Body

आदेश की स्थिति और पूर्ति

PENDING

भुगतान की प्रतीक्षा में: कोई योग्य हस्तांतरण मिलान नहीं किया गया है।

PAID

भुगतान का पता चला, ब्लॉकचेन पुष्टि की प्रतीक्षा है।

CONFIRMED

व्यापारी समीक्षा के माध्यम से भुगतान की पुष्टि या स्वीकार किया गया; कॉलबैक डिलीवरी अभी भी लंबित हो सकती है।

COMPLETED

भुगतान की पुष्टि हो गई है और BoltUtil को एक सफल कॉलबैक प्रतिक्रिया प्राप्त हुई है।

EXPIRED

भुगतान विंडो बिना मिलान योग्य हस्तांतरण के समाप्त हो गई। विलंबित पुष्टिकरण के साथ समय पर स्थानांतरण को बाद में भी पहचाना जा सकता है।

FAILED

आदेश विफल स्थिति में है। इसे भुगतान की सफलता न मानें।

CANCELLED

आदेश रद्द कर दिया गया था। इसे भुगतान की सफलता न मानें।

PAID में पुष्टि बाकी है; इसके आधार पर ऑर्डर पूरा न करें। CONFIRMED या COMPLETED भुगतान की पुष्टि दर्शाते हैं; हर externalOrderId पर केवल एक बार डिलीवरी करें। COMPLETED का अर्थ BoltUtil को सूचना की सफल प्रतिक्रिया मिलना है, आपके व्यवसाय द्वारा डिलीवरी पूरी होना नहीं। मैन्युअल रूप से जाँचे गए भुगतान में वास्तविक भुगतान राशि और निपटान प्रकार भी देखें।

02. प्रतिक्रिया फ़ील्ड (data)

application/json
statusString
वर्तमान आदेश स्थिति। ऊपर राज्य विवरण देखें; एक आदेश को हर राज्य से होकर गुजरने की आवश्यकता नहीं है।
amountString
देय आदेश राशि, एक स्ट्रिंग के रूप में लौटाई गई। रिकॉर्ड की गई भुगतान राशि के लिए paidAmount का उपयोग करें।
paidAmountString / null
भुगतान की गई राशि को एक स्ट्रिंग के रूप में दर्ज किया गया; भुगतान से पहले null हो सकता है। अलग से भुगतान राशि के बिना पुराने भुगतान किए गए ऑर्डर के लिए, यह वापस देय राशि पर आ जाता है।
shortfallAmountString / null
एक स्ट्रिंग के रूप में दर्ज की गई कमी; भुगतान से पहले null हो सकता है। मैन्युअल रूप से स्वीकृत अधिक भुगतान यहां 0 लौट सकता है। हस्ताक्षरित अंतर की गणना करने के लिए, amount से paidAmount घटाएं।
settlementTypeString / null
EXACT: सटीक मिलान; MANUAL_UNDERPAID: कम भुगतान स्वीकार किया गया; MANUAL_OVERPAID: अधिक भुगतान स्वीकार किया गया; MANUAL_AMBIGUOUS: मैन्युअल रूप से समीक्षा की गई एक और एसोसिएशन। निपटान से पहले null हो सकता है।
paymentRouteString / null
वास्तविक भुगतान मार्ग: सीधे ट्रांसफ़र के लिए DIRECT, विभाजित भुगतान के लिए SPLIT। निपटान से पहले क्वेरी में null हो सकता है; यह भुगतान पुष्टि नहीं है।
platformFeeString / null
currency में वास्तविक प्लेटफ़ॉर्म शुल्क, स्ट्रिंग के रूप में; दर्ज होने से पहले क्वेरी में null हो सकता है। सीधे या शुल्क-मुक्त भुगतान में 0, नेटवर्क शुल्क शामिल नहीं है।
merchantNetAmountString / null
currency में व्यापारी की शुद्ध प्राप्ति, स्ट्रिंग के रूप में। विभाजन में कुल भुगतान घटाकर प्लेटफ़ॉर्म शुल्क। दर्ज होने से पहले null हो सकता है; पुराने callback में भुगतान राशि ली जा सकती है।
manuallyAcceptedBoolean
वर्तमान में true केवल MANUAL_UNDERPAID के लिए। यह प्रत्येक मैन्युअल क्रिया की पहचान नहीं करता है; विशिष्ट प्रकार के लिए settlementType का उपयोग करें।
externalOrderIdString
व्यापारी ऑर्डर ID निर्माण के समय आपूर्ति किया जाता है, जिसका उपयोग आपके व्यावसायिक ऑर्डर को क्वेरी करने और संबद्ध करने के लिए किया जाता है।
txHashString / null
संबंधित भुगतान का लेनदेन हैश; एसोसिएशन से पहले null हो सकता है। अकेले हैश भुगतान की पुष्टि साबित नहीं करता है।
destinationAddressString
इस ऑर्डर द्वारा उपयोग किया गया वॉलेट प्राप्त करने वाला व्यापारी; एकाधिक ऑर्डर इसे साझा कर सकते हैं।
confirmationsInteger / null
रिकॉर्ड की गई ब्लॉकचेन पुष्टिकरण गिनती; null हो सकता है। पुष्टिकरण नियम नेटवर्क के अनुसार भिन्न होते हैं। भुगतान पुष्टिकरण निर्धारित करने के लिए status का उपयोग करें।
currencyString
भुगतान मुद्रा कोड, जैसे USDT या USDC.
networkString
भुगतान नेटवर्क कोड: TRC20, ERC20, BEP20, POLYGON, SOLANA या BASE।
paidAtString / null
भुगतान समय को दिनांक-समय स्ट्रिंग के रूप में रिकॉर्ड किया गया; भुगतान दर्ज होने से पहले null.
confirmedAtString / null
दिनांक-समय स्ट्रिंग के रूप में भुगतान पुष्टिकरण समय दर्ज किया गया; पुष्टि से पहले null.
completedAtString / null
दिनांक-समय स्ट्रिंग के रूप में ऑर्डर का समय पहली बार COMPLETED में दर्ज किया गया; null पूरा होने से पहले। सफल पुनरावर्ती डिलीवरी इसे अधिलेखित नहीं करती है। पहले पूर्ण किए गए ऑर्डर अपने ऐतिहासिक रिकॉर्ड किए गए समय को बरकरार रखते हैं।
metadataObject
ऑर्डर निर्माण के समय कस्टम JSON ऑब्जेक्ट की आपूर्ति की जाती है। इसका उपयोग भुगतान मिलान के लिए नहीं किया जाता है.

नोट्स क्वेरी करें

  • क्वेरी संग्रहित ऑर्डर स्थिति लौटाती है; यह ब्लॉकचेन को तुरंत स्कैन नहीं करता है. पुष्टिकरण रिकॉर्ड किए गए मान हैं। भुगतान पुष्टिकरण निर्धारित करने के लिए status का उपयोग करें।
  • मिलान भुगतान के बिना, paidAmount, shortfallAmount, settlementType, txHash और संबंधित समय null हो सकते हैं। यह कोई क्वेरी विफलता नहीं है.
  • केवल आपके अपने ऑर्डर के बारे में पूछताछ की जा सकती है। मुफ़्त खाते पिछले 30 दिनों के भीतर बनाए गए ऑर्डर तक पहुंच सकते हैं; सक्रिय सदस्य सभी इतिहास तक पहुंच सकते हैं। गुम या अप्राप्य ऑर्डर वापसी ऑर्डर नहीं मिला।
  • paidAt, confirmedAt और completedAt दिनांक-समय स्ट्रिंग हैं, जैसे 2026-02-09T18:20:50.790, बिना टाइमज़ोन ऑफसेट के। वे मिलीसेकंड टाइमस्टैम्प नहीं हैं।

सामान्य त्रुटियाँ

ये सामान्य मामले हैं। विफलताओं का निदान करने के लिए वास्तविक HTTP स्थिति और प्रतिक्रिया कोड/संदेश का उपयोग करें। त्रुटि प्रतिक्रिया भुगतान परिणाम नहीं है।

  • 401: API कुंजी, रॉ-बॉडी हस्ताक्षर और वर्तमान मिलीसेकंड timestamp (सर्वर घड़ी के 5 मिनट के भीतर) की जांच करें।
  • 404: ऑर्डर गुम है, किसी अन्य व्यापारी का है या आपके प्लान द्वारा अनुमत इतिहास से बाहर है।
status / cURL
# Run against your account only when ready; this sends an API request.
: "${BOLTUTIL_API_KEY:?Set your complete API Key}"
: "${BOLTUTIL_WEBHOOK_SECRET:?Set your Webhook secret}"
timestamp=$(python3 -c 'import time; print(int(time.time()*1000))')
body='{"externalOrderId":"INV-20260209-99281"}'
signature=$(printf '%s.%s' "$timestamp" "$body" | openssl dgst -sha256 -hmac "$BOLTUTIL_WEBHOOK_SECRET" | awk '{print $NF}')

curl --request POST "https://api.boltutil.com/api/v1/order/status" \
  --header 'Content-Type: application/json' \
  --header "X-Bolt-Key: $BOLTUTIL_API_KEY" \
  --header "X-Bolt-Timestamp: $timestamp" \
  --header "X-Bolt-Signature: $signature" \
  --data-binary "$body"

पते, लेनदेन हैश और ऑर्डर इसके उदाहरण हैं। उन्हें अपने स्वयं के परीक्षण data से बदलें।

Base URL

PROD
https://api.boltutil.com