Skip to content
RugWard
☰ मेनू

RugWard Pay

REST API संदर्भ

RugWard Pay के सभी मर्चेंट एंडपॉइंट, अनुरोध और जवाब के उदाहरण, API कुंजी से प्रमाणीकरण, त्रुटियाँ, सीमाएँ और curl, Node.js, Python व PHP में कोड।

इस पेज पर

मूल बातें#

बेस URLhttps://rugward.com
फ़ॉर्मेटJSON अंदर, JSON बाहर। हर बॉडी के साथ Content-Type: application/json भेजें (वरना 415)। बॉडी कुछ KB तक सीमित है।
प्रमाणीकरणAuthorization: Bearer rwp_… या x-api-key: rwp_… में API कुंजी
राशियाँUSD स्ट्रिंग के रूप में, अधिकतम 2 दशमलव ("25", "25.50"); कॉइन राशियाँ दशमलव स्ट्रिंग होती हैं
समयUnix मिलीसेकंड (createdAt, expiresAt, paidAt)
त्रुटियाँ{"error": "human readable message"}, कभी-कभी "retry": true के साथ

केवल सर्वर से सर्वर। API कुंजी अपने सर्वर पर रखें। ब्राउज़र कुंजी के साथ मर्चेंट API को कॉल नहीं कर सकते (क्रॉस-ऑरिजिन अनुरोधों की अनुमति नहीं है), और वेब पेज में रखी कुंजी सार्वजनिक हो जाएगी।

API कुंजियाँ#

डैशबोर्ड में API keys के तहत कुंजियाँ बनाएँ (साइन इन ज़रूरी)। कुंजी rwp_ और उसके बाद 40 अक्षरों व अंकों जैसी दिखती है और केवल एक बार दिखाई जाती है: इसे तुरंत अपने सर्वर के सीक्रेट स्टोर में कॉपी करें। RugWard केवल SHA-256 हैश रखता है, इसलिए खोई हुई कुंजी दोबारा नहीं दिखाई जा सकती: नई बनाएँ और पुरानी रद्द करें। प्रति मर्चेंट अधिकतम 10 कुंजियाँ; डैशबोर्ड हर कुंजी का प्रीफ़िक्स और आखिरी इस्तेमाल का समय दिखाता है।

डैशबोर्ड में API कुंजियाँ और वेबहुक
API कुंजियाँ बनाएँ या रद्द करें और वेबहुक सेट करें

कुंजी क्या कर सकती है और क्या नहीं:

कुंजी कर सकती हैकुंजी नहीं कर सकती
इनवॉइस बनाना, सूचीबद्ध करना, पढ़ना और रद्द करनासेटिंग या प्राप्ति पते बदलना
पेमेंट लिंक बनाना, सूचीबद्ध करना और बंद करनाAPI कुंजियाँ बनाना, सूचीबद्ध करना या रद्द करना
वेबहुक या उसका सीक्रेट बदलना या पढ़ना
टेस्ट इनवॉइस बनाना

इसलिए लीक हुई कुंजी आपका पैसा कहीं और नहीं भेज सकती: प्राप्ति पते केवल अपने वॉलेट से साइन इन करके ही बदले जा सकते हैं।

एंडपॉइंट#

मेथड और पाथप्रमाणीकरणउद्देश्य
POST /api/pay/merchant/invoicesकुंजी या सेशनइनवॉइस बनाना
GET /api/pay/merchant/invoicesकुंजी या सेशनइनवॉइस की सूची, नए पहले, प्रति पेज 50
GET /api/pay/merchant/invoices/:idकुंजी या सेशनकोट और भुगतानों सहित एक इनवॉइस पढ़ना (चेन की दोबारा जाँच भी करता है)
POST /api/pay/merchant/invoices/:id/cancelकुंजी या सेशनबिना भुगतान वाला खुला इनवॉइस रद्द करना
GET /api/pay/merchant/linksकुंजी या सेशनपेमेंट लिंक की सूची
POST /api/pay/merchant/linksकुंजी या सेशनपेमेंट लिंक बनाना, या बंद करना
GET /api/pay/proof/:idसार्वजनिकभुगतान प्रमाण (केवल paid या overpaid इनवॉइस)

सेटिंग, API कुंजियाँ, वेबहुक और बिना मेल वाले भुगतान डैशबोर्ड में प्रबंधित होते हैं (केवल वॉलेट सेशन से)।

इनवॉइस बनाएँ#

POST /api/pay/merchant/invoices

फ़ील्डप्रकारज़रूरीनियम
amountUsdस्ट्रिंग या संख्याहाँ1 से 50000, अधिकतम 2 दशमलव
orderIdस्ट्रिंगनहीं1–64 अक्षर: अक्षर, अंक, . _ - : # /
descriptionस्ट्रिंगनहींअधिकतम 200 अक्षर, खरीदार को दिखता है
redirectUrlस्ट्रिंगनहींhttps:// URL (अधिकतम 500 अक्षर), भुगतान के बाद दिखता है
expiresMinपूर्णांकनहीं15 से 10080 (7 दिन); डिफ़ॉल्ट 60
curl · create an invoice
curl -X POST https://rugward.com/api/pay/merchant/invoices \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amountUsd": "25.00",
    "orderId": "1234",
    "description": "1 x T-shirt, size M",
    "redirectUrl": "https://shop.example/thanks?order=1234",
    "expiresMin": 60
  }'
201 Created
{
  "id": "Zx3kQ8pL2mN7vR1tY5wB9c",
  "url": "https://rugward.com/pay/i/Zx3kQ8pL2mN7vR1tY5wB9c",
  "status": "open",
  "expiresAt": 1793326882069,
  "assets": ["BTC", "ETH-8453", "USDC-8453", "USDT-56", "SOL", "USDC-SOL"]
}

खरीदार को url पर भेजें। assets उन एसेट id की सूची है जिनमें से खरीदार चुन सकता है (आपके चालू कॉइन जिनका प्राप्ति पता है)।

यही अनुरोध दूसरी भाषाओं में:

Node.js 18+ (server side only)
// Never put the API key in a browser page: call RugWard Pay from your server.
const res = await fetch("https://rugward.com/api/pay/merchant/invoices", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.RUGWARD_PAY_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ amountUsd: "25.00", orderId: "1234", expiresMin: 60 }),
});
const body = await res.json();
if (!res.ok) throw new Error(body.error);
// Save body.id with your order, then send the buyer to body.url
console.log(body.id, body.url);
Python 3 (requests)
import os, requests

r = requests.post(
    "https://rugward.com/api/pay/merchant/invoices",
    headers={"Authorization": f"Bearer {os.environ['RUGWARD_PAY_KEY']}"},
    json={"amountUsd": "25.00", "orderId": "1234", "expiresMin": 60},
    timeout=15,
)
data = r.json()
if r.status_code != 201:
    raise RuntimeError(data.get("error"))
print(data["id"], data["url"])  # store the id, redirect the buyer to the url
PHP 8 (cURL)
<?php
$ch = curl_init("https://rugward.com/api/pay/merchant/invoices");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer " . getenv("RUGWARD_PAY_KEY"),
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode(["amountUsd" => "25.00", "orderId" => "1234", "expiresMin" => 60]),
]);
$data = json_decode(curl_exec($ch), true);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($code !== 201) { throw new Exception($data["error"] ?? "RugWard Pay error"); }
header("Location: " . $data["url"]); // send the buyer to the hosted checkout

इनवॉइस पढ़ें#

GET /api/pay/merchant/invoices/:id। इनवॉइस पढ़ने पर ब्लॉकचेन पर नए भुगतानों की जाँच भी होती है, इसलिए सामान भेजने से पहले भुगतान पुष्ट करने के लिए यही सही कॉल है (वेबहुक के साथ)।

curl · read one invoice
curl https://rugward.com/api/pay/merchant/invoices/Zx3kQ8pL2mN7vR1tY5wB9c \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY"
200 OK
{
  "invoice": {
    "id": "Zx3kQ8pL2mN7vR1tY5wB9c",
    "status": "paid",
    "amountUsd": "25.00",
    "orderId": "1234",
    "description": "1 x T-shirt, size M",
    "redirectUrl": "https://shop.example/thanks?order=1234",
    "createdAt": 1793323282069,
    "expiresAt": 1793326882069,
    "paidAt": 1793324100512,
    "assets": ["BTC", "ETH-8453", "USDC-8453", "USDT-56", "SOL", "USDC-SOL"],
    "test": false,
    "quotes": [
      {
        "id": 4711,
        "asset": "USDC-8453",
        "amount": "25.000629",
        "rateUsd": "1",
        "address": "0xYourMerchantAddress…",
        "expiresAt": 1793325082069
      }
    ],
    "payments": [
      {
        "txid": "0x…",
        "asset": "USDC-8453",
        "amount": "24.875626",
        "confirmations": 30,
        "required": 30,
        "confirmed": true,
        "seenAt": 1793324012000,
        "explorer": "https://basescan.org/tx/0x…"
      }
    ]
  }
}
  • quotes: खरीदार के चुने हर कॉइन की एक प्रविष्टि (राशि, दर, प्राप्ति पता, दर लॉक की समाप्ति)।
  • payments: इस इनवॉइस के लिए देखा गया हर ट्रांज़ैक्शन, confirmations, ज़रूरी required संख्या और confirmed के साथ।
  • Base स्प्लिटर भुगतानों में amount वह है जो आप तक पहुँचा (99.5%)।

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

GET /api/pay/merchant/invoices?before=<createdAt>: प्रति पेज 50, नए पहले। अगला पेज पाने के लिए आपको मिले आखिरी इनवॉइस का createdAt भेजें।

curl · list invoices (50 per page, newest first)
curl "https://rugward.com/api/pay/merchant/invoices" \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY"

# next page: pass the createdAt of the last invoice you received
curl "https://rugward.com/api/pay/merchant/invoices?before=1793323282069" \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY"
200 OK
{
  "invoices": [
    {
      "id": "Zx3kQ8pL2mN7vR1tY5wB9c",
      "status": "open",
      "amountUsd": "25.00",
      "orderId": "1234",
      "description": "1 x T-shirt, size M",
      "createdAt": 1793323282069,
      "expiresAt": 1793326882069,
      "paidAt": null
    }
  ]
}

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

POST /api/pay/merchant/invoices/:id/cancel (बिना बॉडी)। यह तभी काम करता है जब इनवॉइस open हो और कोई भुगतान न दिखा हो; अन्यथा 409।

curl · cancel an open invoice
curl -X POST https://rugward.com/api/pay/merchant/invoices/Zx3kQ8pL2mN7vR1tY5wB9c/cancel \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY"

# 200 {"ok":true}
# 409 {"error":"Only your open invoices without payments can be canceled."}

{amountUsd, description?, redirectUrl?} के साथ POST /api/pay/merchant/links दोबारा इस्तेमाल होने वाला लिंक बनाता है; {"deactivate": "<link id>"} किसी लिंक को बंद करता है। GET अधिकतम 100 लिंक uses, active और createdAt के साथ सूचीबद्ध करता है। पहले मर्चेंट शर्तें स्वीकार होनी चाहिए। देखें पेमेंट लिंक।

curl · create a reusable payment link
curl -X POST https://rugward.com/api/pay/merchant/links \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amountUsd": "15", "description": "Monthly membership", "redirectUrl": "https://shop.example/welcome"}'

# 201 {"id":"k33JZ0ij5F2yLDprwrQgjN","url":"https://rugward.com/pay/l/k33JZ0ij5F2yLDprwrQgjN"}

# list your links
curl https://rugward.com/api/pay/merchant/links -H "Authorization: Bearer $RUGWARD_PAY_KEY"

# turn one off
curl -X POST https://rugward.com/api/pay/merchant/links \
  -H "Authorization: Bearer $RUGWARD_PAY_KEY" -H "Content-Type: application/json" \
  -d '{"deactivate": "k33JZ0ij5F2yLDprwrQgjN"}'

त्रुटियाँ#

Error response (any 4xx/5xx)
{ "error": "Amount in USD, e.g. 25 or 25.50." }

// some temporary errors also carry  "retry": true
HTTPअर्थक्या करें
400अमान्य इनपुट (संदेश बताता है कौन-सा फ़ील्ड)अनुरोध ठीक करें
401API कुंजी नहीं है या अमान्य हैकुंजी जाँचें; हो सकता है वह रद्द हो गई हो
403क्रॉस-साइट अनुरोध अस्वीकृत, मर्चेंट शर्तें स्वीकार नहीं, खाता निलंबित, या यह कार्य कुंजी से अनुमत नहींसंदेश पढ़ें
404नहीं मिला या आपका नहीं हैid जाँचें
409टकराव (जैसे भुगतान हुए इनवॉइस को रद्द करना, या पहले से 100 सक्रिय लिंक)संदेश पढ़ें
415बॉडी JSON नहीं हैContent-Type: application/json भेजें
429दर सीमा, या पिछले घंटे में 500 इनवॉइसरुकें और बढ़ते अंतराल के साथ दोबारा कोशिश करें
451आपके क्षेत्र में उपलब्ध नहीं—
"retry": true के साथ 503कोई ब्लॉकचेन या मूल्य स्रोत अस्थायी रूप से उपलब्ध नहींकुछ सेकंड बाद दोबारा कोशिश करें

सीमाएँ#

  • अनुरोध दर: सभी /api/pay/* एंडपॉइंट पर मिलाकर प्रति IP पता प्रति मिनट लगभग 20 अनुरोध, साथ ही प्रति एंडपॉइंट समूह प्रति मिनट 30 की सीमा। पोलिंग के बजाय वेबहुक इस्तेमाल करें; अगर पोल करें तो हर खुले इनवॉइस के लिए मिनट में एक बार काफ़ी है।
  • इनवॉइस: प्रति मर्चेंट प्रति घंटा 500।
  • पेमेंट लिंक: प्रति मर्चेंट 100 सक्रिय; हर लिंक प्रति घंटा अधिकतम 100 इनवॉइस बनाता है।

इंटीग्रेशन चेकलिस्ट#

  1. ग्राहक के चेकआउट करते समय अपने सर्वर से इनवॉइस बनाएँ; id अपने ऑर्डर के साथ सहेजें।
  2. ग्राहक को url पर रीडायरेक्ट करें।
  3. invoice.paid या invoice.overpaid (वेबहुक) मिलने पर सिग्नेचर सत्यापित करें, फिर GET /api/pay/merchant/invoices/:id से इनवॉइस दोबारा पढ़ें और सामान भेजने से पहले status और amountUsd जाँचें।
  4. underpaid, late और expired को सँभालें (देखें स्थितियाँ)।
  5. अपने हैंडलर को idempotent बनाएँ: वही इवेंट एक से अधिक बार आ सकता है।

अंतिम अपडेट: 30 अक्टूबर 2026

REST API संदर्भ · RugWard दस्तावेज़ | RugWard