# सामान्य जानकारी

> 2328.io के साथ क्रिप्टोकरेंसी भुगतान प्रोसेसिंग और निकासी इंटीग्रेशन के लिए तकनीकी विवरण।

2328.io API documentation में आपका स्वागत है। यह reference बताता है कि अपने application में क्रिप्टोकरेंसी भुगतान प्रोसेसिंग और निकासी कैसे integrate करें।

## शुरू कैसे करें

Integration शुरू करने के लिए:

1. [2328.io](https://2328.io) पर एक merchant account और project बनाएँ
2. Project settings से अपना **project UUID** और **API key** प्राप्त करें
3. यदि आप निकासी का उपयोग करने की योजना बना रहे हैं तो एक अलग **Payout API key** generate करें
4. [Authentication](/docs/authentication) सेक्शन पढ़ें ताकि आप जान सकें कि request को कैसे sign करना है
5. अपनी पहली [Create Payment](/docs/payments) call करें

## Base URL

सभी production API request निम्नलिखित base URL का उपयोग करते हैं:

```
https://api.2328.io/api
```

> **WARNING:** सभी request **HTTPS** के माध्यम से ही भेजे जाने चाहिए। HTTPS के बिना भेजे गए request block कर दिए जाते हैं।

## आप क्या कर सकते हैं

2328.io API के साथ आप यह सब कर सकते हैं:

- **क्रिप्टो भुगतान स्वीकार करें** — भुगतान session बनाएँ और customer को hosted checkout या Telegram MiniApp पर redirect करें
- **फंड निकालें** — अपने merchant बैलेंस से किसी भी blockchain address पर programmatically पेआउट भेजें
- **बैलेंस जाँचें** — प्रत्येक मुद्रा के अनुसार मर्चेंट खाता बैलेंस, USD समतुल्य और AML द्वारा लॉक की गई राशि देखें
- **स्टैटिक वॉलेट का उपयोग करें** — किसी user या order से जुड़े स्थायी deposit address generate करें
- **विनिमय दर प्राप्त करें** — fiat और crypto pairs के लिए real-time दरें पाएँ
- **Webhook प्राप्त करें** — भुगतान status बदलने पर तुरंत notification पाएँ
## Rate limits

API प्रत्येक project के लिए **प्रति सेकंड 10 request तक** की अनुमति देता है। Limit से अधिक request पर HTTP `429 Too Many Requests` response मिलता है — back off करें और retry करें।

## सही एकीकरण पैटर्न चुनें

| आवश्यकता | अनुशंसित पैटर्न | क्यों |
|-------------|---------------------|-----|
| ग्राहक को यह चुनने दें कि भुगतान कैसे करना है | होस्टेड चेकआउट | एक भुगतान बनाएं और `result.url` पर पुनः निर्देशित करें; 2328.io वर्तमान में उपलब्ध दिशाओं को प्रस्तुत करता है। |
| ग्राहक को अपने स्वयं के चेकआउट के अंदर रखें | प्रत्यक्ष-पता **H2H** चालान | भुगतान बनाते समय `to_currency` और `network` भेजें; लौटाए गए `address`, `payer_amount`, और `qr` को रेंडर करें। |
| ठीक `25 USDT` या `0.001 BTC` चार्ज करें | क्रिप्टो-निर्धारित चालान | क्रिप्टोक्यूरेंसी को `currency` में डालें और सही दशमलव राशि को `amount` में डालें। |
| प्रत्येक उपयोगकर्ता को एक पुन: प्रयोज्य डिपॉजिट एड्रेस दें | स्थिर वॉलेट | एड्रेस स्थायी है और कई स्वतंत्र जमा प्राप्त कर सकता है। |
| आने वाली संपत्तियों को एक बैलेंस मुद्रा में सामान्य करें | स्वयं-रूपांतरण | डैशबोर्ड में प्रोजेक्ट नियम कॉन्फ़िगर करें और रूपांतरण पूरा होने पर `convert` परिणाम का उपयोग करें। |
| मौजूदा मर्चेंट बैलेंस का एक्सचेंज करें | मैनुअल रूपांतरण | `/v1/convert/price` के साथ पूर्वावलोकन करें, फिर `/v1/convert` के साथ निष्पादित करें। |
| फंड्स को ब्लॉकचेन एड्रेस पर भेजें | भुगतान | अलग भुगतान API कुंजी का उपयोग करें, पहले गणना करें, और भुगतान स्थिति की मिलान करें। |

> **INFO:** होस्टेड चेकआउट और H2H एक ही भुगतान API के दो रूप हैं। H2H कमजोर या असाइन किए बिना भुगतान नहीं बनाता: बैकएंड अभी भी चालान बनाता है, 2328.io अभी भी पता और स्थिति का मालिक है, और हस्ताक्षरित वेबहुक निपटान के लिए प्राधिकारपूर्ण रहते हैं।

## एकीकरण अपरिवर्तनीय

ये नियम प्रत्येक उत्पादन एकीकरण पर लागू होते हैं:

- **Backend only** — API कुंजियों को ब्राउज़र, मोबाइल एप्लिकेशन, लॉग, विश्लेषण और सपोर्ट स्क्रीनशॉट में न रखें।
- **Decimal strings** — धन को स्ट्रिंग के रूप में भेजें और संग्रहीत करें। कभी भी क्रिप्टोकरेन्सी या विनिमय दरों को बाइनरी फ्लोटिंग-पॉइंट अंकगणित के साथ गोल न करें।
- **Immutable idempotency keys** — पहले अनुरोध से पहले `order_id` उत्पन्न करें और इसके साथ पूर्ण अनुरोध को संग्रहीत करें। उसी `order_id` के साथ एक पुनः प्रयास मूल ऑब्जेक्ट लौट सकता है बजाय इसके कि परिवर्तित फ़ील्ड लागू किए जाएँ।
- **Webhook-first settlement** — रीडायरेक्ट, क्लाइंट पोलिंग, उपयोगकर्ताओं द्वारा प्रदान किए गए ट्रांज़ैक्शन हैश, और HTTP टाइमआउट भुगतान का प्रमाण नहीं हैं।
- **Verify, deduplicate, then mutate** — HMAC सत्यापित करें, एक सुसंगतता रिकॉर्ड को एटॉमिक रूप में दावा करें, ऑर्डर/बैलेंस को एक बार अपडेट करें, और जल्दी HTTP 200 लौटाएँ।
- **Reconciliation** — समय-समय पर भुगतान, स्टेटिक-वॉलेट, और भुगतान स्थिति की जाँच करें ताकि खोया हुआ वेबहुक स्थायी मतभेद न छोड़ सके।
- **Dynamic availability** — `/v1/directions` के साथ मुद्रा/नेटवर्क जोड़ों को मान्य करें; समर्थित संपत्ति में अस्थायी रूप से एक जमा या निकासी दिशा अक्षम हो सकती है।
- **Explicit status policy** — लाइव जाने से पहले यह तय करें कि आपका उत्पाद आंशिक भुगतान, अधिक भुगतान, समाप्ति, AML लॉक, रूपांतरण फ़ॉलबैक, और अस्पष्ट अपस्ट्रीम टाइमआउट्स को कैसे संभालेगा।

## सिफारिश की गई डेटा को बनाए रखें

भुगतान के लिए, न्यूनतम रूप में `uuid`, `order_id`, मूल अनुरोध बॉडी, `amount`, `currency`, `payer_currency`, `payer_amount`, `network`, `address`, `expires_at`, नवीनतम `payment_status`, `txid`, `payment_amount`, `merchant_amount`, वैकल्पिक `convert` ब्लॉक, और कच्चा सत्यापित वेबहुक पेलोड संग्रहीत करें।

स्टैटिक वॉलेट्स के लिए, वॉलेट `uuid`, पता, मुद्रा, नेटवर्क, ग्राहक/खाता संदर्भ, स्थिति, और कॉलबैक URL को जमा रिकॉर्ड से अलग रखें। प्रत्येक जमा को अपना खुद का लेनदेन `uuid`, `txid`, स्थिति, प्राप्त राशि, व्यापारी राशि, और रूपांतरण परिणाम की आवश्यकता होती है।