मुख्य कंटेंट पर जाएँ
Crypto Merchant

डेवलपर

API रेफ़रेंस

इनवॉइस, पेमेंट लिंक, बैलेंस और स्वीकार किए गए कॉइन के लिए एक छोटा REST API। यह HTTPS पर JSON इस्तेमाल करता है, और हर रिक्वेस्ट आपकी सीक्रेट की से की जाती है।

बेस URL

प्रोडक्शन
https://cryptomerchant.online/api/v1
लोकल डेवलपमेंट
http://localhost:3000/api/v1

इस API का मशीन से पढ़ने योग्य विवरण /openapi.json पर है (OpenAPI 3.1)। आप इसे Postman या किसी क्लाइंट जनरेटर में इम्पोर्ट कर सकते हैं।

ऑथेंटिकेशन

हर रिक्वेस्ट के Authorization हेडर में अपनी सीक्रेट की Bearer टोकन के रूप में भेजें। पोर्टल में डेवलपर के अंतर्गत की बनाएँ।

HTTP
Authorization: Bearer cm_live_…
  • की मेननेट पर cm_live_ से और टेस्टनेट पर cm_test_ से शुरू होती हैं।
  • पूरी की सिर्फ़ एक बार दिखाई जाती है, जब आप उसे बनाते हैं। हम उसका सिर्फ़ हैश सेव करते हैं, इसलिए उसे किसी सुरक्षित जगह रखें।
  • की सिर्फ़ अपने सर्वर पर इस्तेमाल करें। उन्हें कभी किसी वेब पेज, मोबाइल ऐप या सार्वजनिक कोड रिपॉज़िटरी में न डालें।
  • अगर किसी की के लीक होने की आशंका है, तो उसे पोर्टल में रद्द करें और नई की बनाएँ।

एरर

जब कोई रिक्वेस्ट फ़ेल होती है, तो रिस्पॉन्स में HTTP एरर स्टेटस होता है और एक JSON बॉडी होती है, जिसमें मशीन के पढ़ने लायक code और इंसान के पढ़ने लायक message होता है:

JSON
{
  "error": {
    "code": "amount_too_small",
    "message": "Amount must be at least 0.50 USD."
  }
}

HTTP स्टेटस

400
रिक्वेस्ट मान्य नहीं है, जैसे कोई फ़ील्ड मौजूद नहीं है या राशि बहुत कम है।
401
API की मौजूद नहीं है, ग़लत है या रद्द की जा चुकी है।
403
आपका अकाउंट यह नहीं कर सकता: वह अभी लाइव नहीं है, या निलंबित है।
404
ऑब्जेक्ट मौजूद नहीं है, या किसी दूसरे बिज़नेस का है।
409
इनवॉइस अपने मौजूदा स्टेटस में यह नहीं कर सकता, जैसे ऐसे इनवॉइस को रद्द करना जिसमें पहले से भुगतान आ चुका है।
500
हमारी तरफ़ से कुछ गड़बड़ हो गई। थोड़ी देर बाद फिर कोशिश करें।

कोड जो आपको दिख सकते हैं

invalid_json
रिक्वेस्ट बॉडी JSON ऑब्जेक्ट नहीं है।
invalid_request
कोई फ़ील्ड मौजूद नहीं है या मान्य नहीं है। मैसेज में फ़ील्ड का नाम होता है।
unauthorized
API की मौजूद नहीं है, ग़लत है या रद्द की जा चुकी है।
account_suspended
यह मर्चेंट अकाउंट निलंबित है।
merchant_not_live
आपका अकाउंट अभी लाइव नहीं है। पहले पोर्टल में सेटअप पूरा करें।
invalid_amount
राशि मौजूद नहीं है, संख्या नहीं है, या शून्य से ज़्यादा नहीं है।
amount_too_small
राशि की वैल्यू 0.50 अमेरिकी डॉलर से कम है।
invalid_asset
यह कॉइन ID किसी ज्ञात कॉइन की नहीं है।
asset_not_accepted
आप वह कॉइन स्वीकार नहीं करते।
invalid_state
इनवॉइस अपने मौजूदा स्टेटस में यह नहीं कर सकता।
not_found
उस ID का कोई ऑब्जेक्ट नहीं है।
server_error
हमारी तरफ़ से कुछ गड़बड़ हो गई।

इनवॉइस ऑब्जेक्ट

API रिस्पॉन्स और वेबहुक में इनवॉइस इसी रूप में होते हैं। राशियाँ दशमलव स्ट्रिंग होती हैं, ताकि प्रिसिशन न खोए।

idstring
इनवॉइस ID, जो inv_ से शुरू होती है।
objectstring
हमेशा invoice।
statusstring
मौजूदा स्टेटस। नीचे स्टेटस की सूची देखें।
amountstring
आपकी माँगी गई क़ीमत, currency में।
currencystring
क़ीमत की करेंसी, जैसे USD।
amount_usdstring
अमेरिकी डॉलर में क़ीमत।
descriptionstring | null
आपका विवरण, जो ग्राहक को दिखाया जाता है।
order_idstring | null
आपका अपना ऑर्डर रेफ़रेंस।
customer_emailstring | null
ग्राहक का ईमेल, अगर आपने दिया हो।
metadataobject
इनवॉइस बनाते समय आपके द्वारा भेजा गया ऑब्जेक्ट, जो बिना बदलाव के लौटाया जाता है।
coinobject | null
ग्राहक द्वारा चुना गया कॉइन, या वह कॉइन जिसमें उसने असल में भुगतान किया, उसके id, symbol और network के साथ। कॉइन चुने जाने तक null।
requested_coinobject | null
आम तौर पर null। जब ग्राहक ने किसी दूसरे कॉइन में या किसी दूसरे नेटवर्क पर भुगतान किया और भुगतान गिन लिया गया, तब यह वह कॉइन है जो इनवॉइस में माँगा गया था, coin जैसे ही फ़ील्ड के साथ। देखें ग़लत कॉइन या ग़लत नेटवर्क।
pay_addressstring | null
इस इनवॉइस का डिपॉज़िट पता। कॉइन चुने जाने तक null।
pay_amountstring | null
चुने गए कॉइन में भेजने के लिए सटीक राशि।
network_fee_amountstring
pay_amount का हिस्सा: वह गैस शुल्क जो ग्राहक क़ीमत के ऊपर चुकाता है, कॉइन में। कोई शुल्क न होने पर 0।
network_fee_usdstring
वही गैस शुल्क अमेरिकी डॉलर में।
rate_usdstring | null
चुने गए कॉइन की एक यूनिट की लॉक की गई क़ीमत, अमेरिकी डॉलर में।
received_amountstring
अब तक कितनी राशि आई है, चुने गए कॉइन में।
received_usdstring
जो राशि आई है उसकी अमेरिकी डॉलर में वैल्यू।
overpaid_amountstring
इनवॉइस में माँगी गई राशि से कितना ज़्यादा भुगतान हुआ, चुने गए कॉइन में।
refunded_amountstring
आपने रिफ़ंड लिंक से इस भुगतान पर कितना रिफ़ंड किया है, भुगतान वाले कॉइन में। कुछ नहीं हो तो 0।
checkout_urlstring
इनवॉइस पेज। भुगतान के लिए अपने ग्राहक को यहाँ भेजें।
redirect_urlstring | null
भुगतान के बाद ग्राहक कहाँ जा सकता है।
expires_atISO 8601
कोई भुगतान न दिखने पर इनवॉइस कब एक्सपायर होगा।
paid_atISO 8601 | null
इनवॉइस का भुगतान कब हुआ, या null।
created_atISO 8601
इनवॉइस कब बनाया गया।
invoice
{
  "id": "inv_…",
  "object": "invoice",
  "status": "open",
  "amount": "49.9",
  "currency": "USD",
  "amount_usd": "49.9",
  "description": "Annual plan",
  "order_id": "1042",
  "customer_email": "[email protected]",
  "metadata": { "plan": "annual" },
  "coin": null,
  "requested_coin": null,
  "pay_address": null,
  "pay_amount": null,
  "network_fee_amount": "0",
  "network_fee_usd": "0",
  "rate_usd": null,
  "received_amount": "0",
  "received_usd": "0",
  "overpaid_amount": "0",
  "refunded_amount": "0",
  "checkout_url": "https://cryptomerchant.online/pay/i/inv_…",
  "redirect_url": "https://yourstore.example/thanks",
  "expires_at": "2026-10-28T10:00:00.000Z",
  "paid_at": null,
  "created_at": "2026-10-28T09:30:00.000Z"
}

इनवॉइस स्टेटस

openखुला
बनाया गया। ग्राहक ने अभी कोई कॉइन नहीं चुना है।
awaiting_paymentभुगतान बाकी
कॉइन चुना गया है, डिपॉज़िट पता असाइन हो गया है और दर लॉक हो गई है।
confirmingकन्फ़र्म हो रहा है
ऑन-चेन एक भुगतान दिखा है और वह कन्फ़र्मेशन का इंतज़ार कर रहा है।
underpaidकम भुगतान
कन्फ़र्म भुगतान आपकी छूट सीमा से ज़्यादा कम है। ग्राहक बाक़ी राशि चुका सकता है या रिफ़ंड माँग सकता है।
paidभुगतान हुआ
भुगतान हो गया और कन्फ़र्म है। शुल्क घटाकर राशि आपके बैलेंस में है। आंशिक रिफ़ंड के बाद भी यही स्टेटस रहता है।
expiredएक्सपायर
कोई भुगतान दिखने से पहले समय ख़त्म हो गया।
cancelledरद्द
कोई भुगतान दिखने से पहले इनवॉइस रद्द कर दिया गया।
refundedरिफ़ंड हुआ
कम भुगतान वाले इनवॉइस पर ग्राहक को उसकी भेजी गई राशि रिफ़ंड कर दी गई, या आपने किसी भुगतान हो चुके इनवॉइस से अपने पास रही पूरी राशि रिफ़ंड कर दी।

इनवॉइस बनाएँ

POST/invoices

एक इनवॉइस बनाता है और स्टेटस 201 के साथ इनवॉइस ऑब्जेक्ट लौटाता है। अपने ग्राहक को उसके checkout_url पर भेजें।

बॉडी पैरामीटर

amountज़रूरीnumber | string
क़ीमत, संख्या या दशमलव स्ट्रिंग के रूप में। इसकी वैल्यू कम से कम 0.50 अमेरिकी डॉलर होनी चाहिए।
currencyवैकल्पिकstring
क़ीमत की करेंसी, जैसे USD। डिफ़ॉल्ट USD है।
descriptionवैकल्पिकstring
ग्राहक किस चीज़ के लिए भुगतान कर रहा है, 300 अक्षरों तक। इनवॉइस पेज पर दिखाया जाता है।
order_idवैकल्पिकstring
आपका अपना ऑर्डर रेफ़रेंस, 120 अक्षरों तक, ताकि इनवॉइस को ऑर्डर से मिलाया जा सके।
customer_emailवैकल्पिकstring
ग्राहक का ईमेल पता। पोर्टल में भुगतान ग्राहक के हिसाब से ग्रुप किए जाते हैं।
customer_nameवैकल्पिकstring
ग्राहक का नाम, 120 अक्षरों तक।
redirect_urlवैकल्पिकstring
एक पूरा URL जहाँ ग्राहक भुगतान के बाद जा सकता है।
metadataवैकल्पिकobject
4 KB तक का कोई भी JSON ऑब्जेक्ट। इनवॉइस पर और वेबहुक में बिना बदलाव के लौटाया जाता है।
coinवैकल्पिकstring
कोई कॉइन उसकी ID से पहले से चुनें, जैसे USDT.TRON। यह आपके स्वीकार किए गए कॉइन में से एक होना चाहिए।

पहले से चुने गए coin के साथ, डिपॉज़िट पता तुरंत असाइन हो जाता है और दर लॉक हो जाती है, इसलिए pay_address और pay_amount भरे होते हैं और आप भुगतान का विवरण अपने इंटरफ़ेस में दिखा सकते हैं।

curl
curl https://cryptomerchant.online/api/v1/invoices \
  -H "Authorization: Bearer $CM_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "49.90",
    "currency": "USD",
    "order_id": "1042",
    "description": "Annual plan",
    "customer_email": "[email protected]",
    "redirect_url": "https://yourstore.example/thanks",
    "metadata": { "plan": "annual" }
  }'
Node.js
const res = await fetch("https://cryptomerchant.online/api/v1/invoices", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.CM_SECRET_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    amount: "49.90",
    currency: "USD",
    order_id: "1042",
    description: "Annual plan",
  }),
});

if (!res.ok) {
  const { error } = await res.json();
  throw new Error(`${error.code}: ${error.message}`);
}

const invoice = await res.json();
// Send the customer to invoice.checkout_url

इनवॉइस की सूची

GET/invoices

आपके इनवॉइस लौटाता है, सबसे नए पहले, एक बार में एक पेज।

क्वेरी पैरामीटर

statusवैकल्पिकstring
सिर्फ़ इस स्टेटस वाले इनवॉइस, जैसे paid। ऊपर दिए गए स्टेटस में से एक होना चाहिए।
limitवैकल्पिकnumber
कितने इनवॉइस लौटाने हैं, 1 से 100 तक। डिफ़ॉल्ट 20 है।
starting_afterवैकल्पिकstring
एक इनवॉइस ID। अगले पेज के लिए, उसके बाद आने वाले इनवॉइस लौटाता है।

इनवॉइस data में होते हैं। जब has_more true हो, तो starting_after को आपको मिले आख़िरी इनवॉइस की ID पर सेट करके अगला पेज माँगें।

curl
curl "https://cryptomerchant.online/api/v1/invoices?status=paid&limit=20" \
  -H "Authorization: Bearer $CM_SECRET_KEY"
रिस्पॉन्स
{
  "object": "list",
  "data": [
    { "id": "inv_…", "object": "invoice", "status": "paid", … }
  ],
  "has_more": true
}

इनवॉइस प्राप्त करें

GET/invoices/{id}

ID से एक इनवॉइस लौटाता है।

curl
curl https://cryptomerchant.online/api/v1/invoices/$INVOICE_ID \
  -H "Authorization: Bearer $CM_SECRET_KEY"

इनवॉइस रद्द करें

POST/invoices/{id}/cancel

इनवॉइस रद्द करता है। यह सिर्फ़ तब काम करता है जब इनवॉइस का भुगतान नहीं हुआ हो और उसके लिए कोई भुगतान न दिखा हो।

curl
curl -X POST https://cryptomerchant.online/api/v1/invoices/$INVOICE_ID/cancel \
  -H "Authorization: Bearer $CM_SECRET_KEY"

बैलेंस

GET/balances

लौटाता है कि आपका बिज़नेस हर कॉइन में कितना रखता है, अमेरिकी डॉलर में कुल राशि, और आपका गैस बैलेंस।

data[].coin
कॉइन ID, जैसे USDT.TRON।
data[].symbol
कॉइन सिंबल, जैसे USDT।
data[].network
वह नेटवर्क जिस पर कॉइन है।
data[].amount
आपके पास कॉइन की कितनी मात्रा है, दशमलव स्ट्रिंग के रूप में।
data[].usd
मौजूदा क़ीमत पर अमेरिकी डॉलर में इसकी वैल्यू।
total_usd
आपके सभी कॉइन की अमेरिकी डॉलर में वैल्यू।
gas_balance_usd
अमेरिकी डॉलर में आपका गैस बैलेंस, जो गैस शुल्क चुकाने में इस्तेमाल होता है।
curl
curl https://cryptomerchant.online/api/v1/balances \
  -H "Authorization: Bearer $CM_SECRET_KEY"
रिस्पॉन्स
{
  "object": "balance",
  "data": [
    { "coin": "USDT.TRON", "symbol": "USDT", "network": "Tron", "amount": "…", "usd": "…" }
  ],
  "total_usd": "…",
  "gas_balance_usd": "…"
}

स्वीकार किए गए कॉइन

GET/coins

वे कॉइन लौटाता है जो आप अभी स्वीकार करते हैं, हर एक अपने id, symbol, name, network और decimals के साथ। इनवॉइस बनाते समय id को coin के रूप में इस्तेमाल करें। उदाहरण के लिए:

curl
curl https://cryptomerchant.online/api/v1/coins \
  -H "Authorization: Bearer $CM_SECRET_KEY"
रिस्पॉन्स
{
  "object": "list",
  "data": [
    {
      "id": "ETH.ETH",
      "symbol": "ETH",
      "name": "Ethereum",
      "network": "Ethereum",
      "decimals": 18
    },
    {
      "id": "USDT.ETH",
      "symbol": "USDT",
      "name": "Tether USD",
      "network": "Ethereum",
      "decimals": 6
    },
    {
      "id": "USDC.ETH",
      "symbol": "USDC",
      "name": "USD Coin",
      "network": "Ethereum",
      "decimals": 6
    }
  ]
}

POST/payment-links

एक पेमेंट लिंक बनाता है और उसे स्टेटस 201 के साथ लौटाता है, जिसमें उसकी id और शेयर करने लायक url शामिल हैं।

बॉडी पैरामीटर

titleज़रूरीstring
ग्राहक जिस चीज़ के लिए भुगतान करता है उसका नाम, 120 अक्षरों तक।
amountवैकल्पिकnumber | string
तय क़ीमत। ग्राहक को राशि ख़ुद डालने देने के लिए इसे छोड़ दें।
currencyवैकल्पिकstring
क़ीमत की करेंसी। डिफ़ॉल्ट USD है।
descriptionवैकल्पिकstring
ग्राहक को दिखाया जाने वाला अतिरिक्त विवरण, 300 अक्षरों तक।
curl
curl https://cryptomerchant.online/api/v1/payment-links \
  -H "Authorization: Bearer $CM_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Consulting hour",
    "amount": "80",
    "currency": "USD"
  }'
रिस्पॉन्स
{
  "id": "…",
  "object": "payment_link",
  "title": "Consulting hour",
  "description": null,
  "amount": "80",
  "currency": "USD",
  "active": true,
  "url": "https://cryptomerchant.online/pay/l/…",
  "created_at": "2026-10-28T09:30:00.000Z"
}

GET/payment-links

आपके सबसे हाल के 100 पेमेंट लिंक data में लौटाता है, सबसे नए पहले।

curl
curl https://cryptomerchant.online/api/v1/payment-links \
  -H "Authorization: Bearer $CM_SECRET_KEY"

पेआउट ऑब्जेक्ट

पेआउट वेबहुक (payout.sent और payout.failed) data में यह ऑब्जेक्ट लेकर आते हैं। रेवेन्यू स्प्लिट से किसी पार्टनर के हिस्से के पेआउट भी यही ऑब्जेक्ट इस्तेमाल करते हैं, जिसमें partner_share true पर सेट होता है।

idstring
पेआउट ID।
objectstring
हमेशा payout।
coinstring
कॉइन ID, जैसे USDT.TRON।
amountstring
पेआउट की गई राशि, उसी कॉइन में।
network_feestring
इसे भेजने का गैस शुल्क, उसी कॉइन में।
to_addressstring
वह वॉलेट पता जिस पर इसे भेजा गया।
statusstring
queued, running, done या failed।
tx_hashstring | null
ब्लॉकचेन पर ट्रांज़ैक्शन ID, भेजे जाने के बाद।
autoboolean
true अगर पेआउट अपने-आप हुआ, किसी व्यक्ति के अनुरोध पर नहीं।
partner_shareboolean
true अगर यह पेआउट रेवेन्यू स्प्लिट से किसी पार्टनर का हिस्सा है, जो पार्टनर के वॉलेट में भेजा गया।
created_atISO 8601
पेआउट कब बनाया गया।
payout
{
  "id": "…",
  "object": "payout",
  "coin": "USDT.TRON",
  "amount": "120",
  "network_fee": "…",
  "to_address": "T…",
  "status": "done",
  "tx_hash": "…",
  "auto": true,
  "partner_share": true,
  "created_at": "2026-10-28T09:30:00.000Z"
}
अब वेबहुक सेट अप करें, ताकि भुगतान होते ही आपके सर्वर को पता चल जाए।