इसके साथ बनाएंCryptocardium।
कार्ड जारी करें, खाते में धन डालें, लेन-देन शुरू करें और उनके जीवनचक्र को देखें — cURL से, किसी भी SDK से, अपने AI एजेंट से। पूरा प्लेटफ़ॉर्म एक स्थिर REST API और एक नेटिव MCP सर्वर है।
स्वागत
Cryptocardium एक no-KYC कार्ड प्रोग्राम है जो क्रिप्टो से वित्त पोषित है। पैनल में आप जो भी कार्रवाई कर सकते हैं — खाता खोलना, टॉप-अप करना, कार्ड जारी करना, उसे लोड करना, खर्च करना, लेन-देन देखना — वह सब उसी REST API और MCP सर्वर के माध्यम से उपलब्ध है।
ये डॉक्स सब कुछ कवर करते हैं: परंपराएँ (API कैसे बात करता है), संसाधन (आप क्या माँग सकते हैं), इवेंट (आप कैसे सिंक में रहते हैं), और एकीकरण (Claude, ChatGPT, Cursor, कोई भी एजेंट)।
/account पर साइन अप करें, API Settings खोलें, "New key" पर क्लिक करें। पूरा प्लेनटेक्स्ट एक बार दिखाया जाता है — इसे किसी सीक्रेट मैनेजर में सहेजें।
त्वरित प्रारंभ
शून्य से तीन कॉल में एक लाइव वर्चुअल कार्ड तक। नीचे दिया शेल cURL का उपयोग करता है; किसी भी HTTP क्लाइंट से बदलें।
1. प्रमाणीकरण करें
अपनी API key को Authorization header में रखें। प्रत्येक endpoint के लिए यह आवश्यक है।
export CCM_KEY="ccm_live_a1b2c3d4..."
2. ट्रेज़री में टॉप-अप करें
एक USDT डिपॉज़िट पता बनाएँ। धन भेजें; हम पुष्टि पर जमा करते हैं।
curl https://api.cryptocardium.com/v1/topups \
-H "Authorization: Bearer $CCM_KEY" \
-H "Idempotency-Key: top_$(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "amount_usd": 500, "asset": "USDT", "chain": "tron" }'
3. कार्ड जारी करें & खर्च करें
एक BIN चुनें (वॉलेट के लिए Visa Platinum, विज्ञापन के लिए Visa Business), उसे लोड करें, और आप लाइव हैं।
curl https://api.cryptocardium.com/v1/cards \
-H "Authorization: Bearer $CCM_KEY" \
-d '{
"type": "virtual",
"bin": "489517",
"load_usd": 300,
"wallet_provision": ["apple_pay", "google_pay"]
}'
# → 201 Created · card is live, balance loaded, wallet-ready
साइनअप से पहले auth तक सैंतालीस सेकंड औसत। शेष अनुभाग बाकी सब कुछ कवर करते हैं — त्रुटि हैंडलिंग, इडेम्पोटेंसी, webhooks, एजेंट सेटअप — जो आपको प्रोडक्शन में चाहिए होगा।
प्रमाणीकरण
तीन प्रकार के क्रेडेंशियल, एकीकरण के आकार के अनुसार चुनें:
| प्रकार | प्रारूप | उपयोग |
|---|---|---|
| सेशन bearer | sess_… | इंटरेक्टिव स्क्रिप्ट, परीक्षण, पैनल स्वयं। |
| API key | ccm_live_… | प्रोडक्शन सर्वर, CI, शेड्यूल्ड जॉब, दीर्घकालिक। |
| OAuth 2.1 + DCR | eyJh… (JWT) | एजेंट जो रनटाइम पर स्वयं नामांकित होते हैं, स्कोप्ड अनुदान। |
Bearer header
तीनों एक ही header से गुज़रते हैं:
Authorization: Bearer ccm_live_a1b2c3d4...
API key बनाएँ
Keys केवल पैनल में बनाई जाती हैं। हम API पर बिना पैनल सेशन से जुड़े प्रमाणीकृत सेशन के कभी key निर्माण अनुरोध स्वीकार नहीं करते।
- अपने खाते में साइन इन करें।
- API Settings खोलें।
- New key पर क्लिक करें, इसे एक पहचानने योग्य नाम दें, प्लेनटेक्स्ट सहेजें (एक बार दिखाया जाता है)।
- किसी सीक्रेट मैनेजर में संग्रहीत करें। अपने वातावरण में
CCM_KEYके रूप में जोड़ें।
लीक हुई ccm_live_ key में खाता-स्तर की अनुमति होती है। यदि आपको एक्सपोज़र का संदेह हो तो /api-settings के माध्यम से रोटेट करें — रद्दीकरण तत्काल है।
परीक्षण & सैंडबॉक्स
आज, $200 से कम के टॉप-अप लाइव के रूप में स्वीकार किए जाते हैं लेकिन सैंडबॉक्स कार्ड प्रोसेसर की ओर रूट किए जाते हैं, ताकि आप वास्तविक सेटलमेंट जलाए बिना एकीकरण कर सकें। प्रोडक्शन खाते प्रति key सैंडबॉक्स-मोड टॉगल प्राप्त करते हैं।
- $200+ टॉप-अप → प्रोडक्शन रेल, वास्तविक सेटलमेंट।
- $200 से कम टॉप-अप → सैंडबॉक्स रेल, सिमुलेटेड ऑथराइज़ेशन।
- सैंडबॉक्स टॉप-अप से जारी कार्ड
"mode": "sandbox"रखते हैं।
Base URL & संस्करण
प्रोडक्शन base URL:
https://api.cryptocardium.com/v1
v1 prefix पथ का हिस्सा है। v1 LTS-फॉरएवर है — इसके अंतर्गत कभी भी ब्रेकिंग परिवर्तन नहीं भेजे जाएंगे। ऐडिटिव परिवर्तन (नए वैकल्पिक फ़ील्ड, नए endpoints) पारदर्शी रूप से भेजे जाते हैं।
ब्रेकिंग परिवर्तन एक नए prefix (v2) के अंतर्गत कम से कम छह महीने के ओवरलैप के साथ जाते हैं। deprecations की घोषणा webhook (system.deprecation) और परिवर्तन सूची के माध्यम से की जाती है।
अनुरोध
सभी अनुरोध HTTPS-केवल हैं (TLS 1.3)। अनुरोध निकाय JSON हैं; नेस्टेड ऑब्जेक्ट प्रथम श्रेणी हैं। फ़ॉर्म-एनकोडेड निकाय समर्थित नहीं हैं।
- Content-Type: राइट endpoints के लिए
application/json। - <strong>Charset</strong>: सदैव UTF-8।
- HTTP methods:
GET(पढ़ें),POST(बनाएँ / कार्रवाई),PATCH(आंशिक अपडेट),DELETE(हटाएँ)। - Header सीमाएँ: कुल 8 KB, प्रति मान 4 KB।
- Body सीमा: 25 MB (विवाद साक्ष्य अपलोड के लिए 100 MB)।
- Timeouts: 30 s कनेक्ट, 60 s पढ़ें। दीर्घकालिक ऑपरेशन async हैं।
प्रतिक्रियाएँ
प्रत्येक प्रतिक्रिया JSON है। सफलता प्रतिक्रियाएँ resource body के साथ 200/201/204 लौटाती हैं। त्रुटियाँ एक संरचित error ऑब्जेक्ट लौटाती हैं — त्रुटियाँ देखें।
मानक envelope
{
"id": "card_8f3a91b7c4d2",
"object": "card",
"created_at": "2026-05-19T07:30:00Z",
"updated_at": "2026-05-19T07:30:00Z",
...
}
टाइमस्टैम्प
सभी टाइमस्टैम्प UTC में ISO 8601 हैं, YYYY-MM-DDTHH:MM:SSZ के रूप में स्वरूपित। API में कोई अन्य timezone नहीं है।
मौद्रिक मान
सभी राशियाँ amount_usd फ़ील्ड में USD-समकक्ष दशमलव हैं। दो-दशमलव सटीकता। आंतरिक रूप से USDT द्वारा समर्थित।
पृष्ठांकन
सूची endpoints (/topups, /cards, /transactions, …) cursor-paginated हैं। कोई offset नहीं, कोई SQL LIMIT नहीं।
GET /v1/transactions?limit=50&cursor=tx_8f3a91b7c4d2
limit— पृष्ठ आकार, डिफ़ॉल्ट 25, अधिकतम 100।cursor— पिछली प्रतिक्रिया सेnext_cursorवापस पास करें।- पृष्ठांकन प्रत्येक resource के प्राकृतिक क्रम का अनुसरण करता है (आमतौर पर <code>created_at</code> desc)।
{
"object": "list",
"data": [ /* 50 items */ ],
"has_more": true,
"next_cursor": "tx_2bea88..."
}
फ़िल्टरिंग & क्रमबद्धता
प्रत्येक सूची endpoint query parameters के माध्यम से अपने प्राथमिक फ़ील्ड पर फ़िल्टरिंग का समर्थन करता है:
GET /v1/transactions
?card_id=card_8f3a91b7c4d2
&status=captured
&created_after=2026-05-01T00:00:00Z
&sort=-amount_usd
sort parameter एक single फ़ील्ड स्वीकार करता है; अवरोही के लिए - से प्रारंभ करें। समर्थित filter keys के लिए प्रत्येक resource का endpoint संदर्भ देखें।
इडेम्पोटेंसी
प्रत्येक राइट अनुरोध (POST, PATCH, DELETE) एक Idempotency-Key header स्वीकार करता है। प्रति लॉजिकल ऑपरेशन एक unique मान पास करें। समान key के साथ पुनः प्रयास मूल प्रतिक्रिया लौटाते हैं।
POST /v1/cards
Idempotency-Key: card_create_b9f1a4...
Authorization: Bearer ccm_live_...
- Keys 24 घंटे के लिए संग्रहीत की जाती हैं। उसके बाद, समान key को ताज़ा ऑपरेशन के लिए पुनः उपयोग किया जा सकता है।
- अनुशंसित प्रारूप:
<operation>_<uuid-v4>। - समान key + अलग body →
409 Conflictके साथconflict_idempotency_key। GETअनुरोध हमेशा idempotent होते हैं और header की आवश्यकता (या स्वीकृति) नहीं करते।
दर सीमाएँ
प्रति API key:
| विंडो | सीमा | नोट्स |
|---|---|---|
| 1 s बर्स्ट | 60 req | छोटी स्पाइक्स सहन की जाती हैं। |
| 1 मिनट | 1 000 req | निरंतर उच्चतम सीमा। |
| 1 दिन | 50 000 req | प्रति key कुल। |
प्रत्येक प्रतिक्रिया में शामिल है:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 943
X-RateLimit-Reset: 1718999999
जब आप सीमा पार कर लेते हैं, तो आपको सेकंड में Retry-After header के साथ 429 Too Many Requests मिलेगा। इसका पालन करें; हम बुरे व्यवहार करने वालों पर exponential-backoff लगाते हैं।
त्रुटियाँ
प्रत्येक error प्रतिक्रिया एक ही आकार का उपयोग करती है:
{
"object": "error",
"type": "invalid_request_error",
"code": "missing_required_field",
"message": "Field 'bin' is required.",
"param": "bin",
"request_id": "req_a9f4b1..."
}
HTTP status मैपिंग
| Status | प्रकार | अर्थ |
|---|---|---|
| 400 | invalid_request_error | विकृत payload, अनुपस्थित फ़ील्ड। |
| 401 | authentication_error | bearer अनुपस्थित या अमान्य। |
| 403 | permission_error | bearer मान्य है, कार्रवाई अनुमत नहीं (जैसे, balance gate)। |
| 404 | not_found_error | संसाधन मौजूद नहीं (या आपका नहीं)। |
| 409 | conflict_error | State संघर्ष (जैसे, पुनः उपयोग की गई idempotency key)। |
| 419 | session_expired | पैनल सेशन समाप्त हो गया। पुनः प्रमाणित करें। |
| 422 | validation_error | Payload वैध JSON है, business rule विफल। |
| 429 | rate_limit_error | धीमे करें। Retry-After सेकंड में। |
| 500 | api_error | हमारी गलती। हम पहले ही अलर्ट हो चुके हैं। |
| 503 | service_unavailable | Upstream issuer डाउन है। Auto-retry अनुशंसित। |
हमेशा request_id लॉग करें। सपोर्ट टिकट इसे सीधे संदर्भित करते हैं।
खाते
खाता आपका root संसाधन है। बाकी सब कुछ (टॉप-अप, कार्ड, लेन-देन) एक खाते से संबंधित है।
बनाएँ
POST /v1/accounts
{
"email": "[email protected]",
"password": "long-random-string"
}
तुरंत एक session bearer लौटाता है। API का उपयोग शुरू करने के लिए कोई KYC नहीं, कोई दस्तावेज़ अपलोड नहीं, कोई ईमेल सत्यापन चरण आवश्यक नहीं।
वर्तमान प्राप्त करें
GET /v1/accounts/me
{
"id": "acc_8f3a91b7c4d2",
"email": "[email protected]",
"balance_usd": 487.20,
"twofa_enabled": true,
"created_at": "2026-05-18T20:14:00Z"
}
शेष & ट्रेज़री
खाता शेष खर्च योग्य USDT पूल है। टॉप-अप इसे जमा करते हैं, कार्ड लोड और निकासी इसे डेबिट करते हैं।
GET /v1/balance
{
"object": "balance",
"available_usd": 487.20,
"pending_usd": 200.00,
"updated_at": "2026-05-19T07:30:00Z"
}
pending_usd में-उड़ान टॉप-अप (अभी तक पुष्टि नहीं) और में-उड़ान कार्ड लोड शामिल हैं।
टॉप-अप
टॉप-अप वह असममित चरण है जहाँ आप ऑन-चेन क्रिप्टो कमिट करते हैं और हम finality के बाद USDT जमा करते हैं।
बनाएँ
POST /v1/topups
{
"amount_usd": 500,
"asset": "USDT",
"chain": "tron"
}
एक डिपॉज़िट पता, QR data URI, और एक expiry (डिफ़ॉल्ट 60 मिनट) लौटाता है। पते पर सटीक राशि भेजें; हम पुष्टि पर जमा करते हैं।
{
"id": "top_4e21a99c7b",
"status": "pending",
"amount_usd": 500,
"deposit_address": "T9zFR...kQp",
"qr_data_uri": "data:image/png;base64,...",
"expires_at": "2026-05-19T08:30:00Z"
}
Status जीवनचक्र
| Status | अर्थ |
|---|---|
| pending | ऑन-चेन डिपॉज़िट की प्रतीक्षा में। |
| completed | शेष राशि में धन जमा। |
| expired | पते की विंडो बंद। विलंबित जमा अभी भी auto-credit होते हैं। |
| cancelled | आपने POST /v1/topups/:id/cancel कॉल किया। |
| error | सेटलमेंट विफल (दुर्लभ)। Auto-refunded। |
पोलिंग के बजाय topup.confirmed webhook को प्राथमिकता दें — यह एक बार फायर होता है और आपको 30+ polls बचाता है।
कार्ड
कार्ड दो प्रकार के होते हैं — वर्चुअल (सेकंड में लाइव) और फ़िज़िकल (5–9 दिन में भेजा जाता है, Visa Gold BIN पर लॉक)।
जारी करें
POST /v1/cards
{
"type": "virtual",
"bin": "489517",
"load_usd": 300,
"wallet_provision": ["apple_pay", "google_pay"]
}
BIN सूची
| BIN | नाम | सर्वोत्तम | प्रकार |
|---|---|---|---|
| 416842 | Visa Business | विज्ञापन खर्च (3-D Secure) | वर्चुअल |
| 557213 | Mastercard World | मल्टी-करेंसी, प्रीमियम | वर्चुअल |
| 489517 | Visa Platinum | Apple & Google Pay | वर्चुअल |
| 472305 | Visa Corporate | SaaS सदस्यताएँ | वर्चुअल |
| 448585 | Visa Gold | केवल फ़िज़िकल (3-D Secure) | फ़िज़िकल |
पूरा PAN + CVV प्रकट करें
पूरा कार्ड नंबर, CVV और expiry केवल एक समर्पित, ऑडिटेड कॉल पर लौटाए जाते हैं:
GET /v1/cards/:id/pan
{
"pan": "4895 1712 ●●●● 4218",
"cvv": "347",
"expires_at": "2029-08",
"audit_id": "audit_8c2e3f..."
}
प्रत्येक reveal audit trail में लॉग किया जाता है। एजेंट्स को प्रति खरीदारी एक बार reveal करना चाहिए, कभी संग्रहीत नहीं करना चाहिए, और उपयोग के बाद memory से हटा देना चाहिए।
ऑपरेशन
POST /v1/cards/:id/freeze— ऑथराइज़ेशन रोकें।POST /v1/cards/:id/unfreeze— पुनः शुरू करें।POST /v1/cards/:id/load— कार्ड में USDT जोड़ें।POST /v1/cards/:id/unload— अप्रयुक्त शेष को treasury में वापस ले जाएँ।POST /v1/cards/:id/cancel— स्थायी सेवानिवृत्ति।PATCH /v1/cards/:id/limits— प्रति-कार्ड लेन-देन / मासिक सीमाएँ।PATCH /v1/cards/:id/mcc— MCC allow/deny सूचियाँ।PATCH /v1/cards/:id/geo— देश allow-lists।
कार्ड लोड & शेष राशि
कार्ड शेष USD-समकक्ष USDT में मापी जाती है। एक लोड treasury से कटौती करता है, 2% रेल शुल्क लागू करता है, और कार्ड को क्रेडिट करता है।
POST /v1/cards/:id/load
{ "amount_usd": 200 }
{
"card_id": "card_8f3a91b7c4d2",
"loaded_usd": 200.00,
"rail_fee_usd": 4.00,
"new_card_balance_usd": 200.00,
"new_treasury_balance_usd": 283.20
}
लोड atomic हैं — कॉल तभी लौटती है जब धन स्थानांतरित हो जाता है।
लेन-देन
प्रत्येक ऑथराइज़ेशन, capture, refund और decline एक transaction ऑब्जेक्ट है। ये append-only और immutable हैं।
GET /v1/cards/:id/transactions?status=captured&limit=50
{
"object": "list",
"data": [
{
"id": "tx_b1c2d3",
"object": "transaction",
"card_id": "card_8f3a91b7c4d2",
"status": "captured",
"amount_usd": 42.95,
"merchant": { "name": "OpenAI", "mcc": "7372" },
"auth_response_code": "00",
"created_at": "2026-05-19T03:14:00Z"
}
],
"has_more": false
}
status, card_id, mcc, merchant_name, created_after, created_before, amount_min, amount_max पर फ़िल्टर करें।
निकासी
treasury USDT को अपने नियंत्रण वाले किसी भी external wallet में भेजें।
POST /v1/withdrawals
{
"amount_usd": 100,
"chain": "tron",
"address": "T9zFR...kQp"
}
न्यूनतम $10, अधिकतम आपकी पूरी शेष राशि। समर्थित chains: tron (सबसे सस्ता), ethereum, bsc। Cross-network भेजना अपूरणीय है — हमेशा पते की जाँच करें।
विवाद
किसी भी लेन-देन पर chargeback दर्ज करें:
POST /v1/disputes
{
"transaction_id": "tx_b1c2d3",
"reason": "duplicate",
"description": "Merchant charged twice on 2026-05-19, same order #4921."
}
Reason codes: duplicate, not_received, fraud, not_as_described, cancelled_subscription, other।
POST /v1/disputes/:id/evidence के माध्यम से साक्ष्य (रसीद, स्क्रीनशॉट, पत्राचार) संलग्न करें। हम आपकी ओर से issuer के साथ दाखिल करते हैं — कोई अतिरिक्त शुल्क नहीं।
Webhooks · सदस्यता
Webhooks घटनाओं को होते ही आपके HTTPS endpoint पर push करते हैं। पोलिंग से बचें; webhooks का उपयोग करें।
POST /v1/webhooks
{
"url": "https://yourapp.example.com/webhooks/cryptocardium",
"events": [
"topup.confirmed",
"card.issued",
"transaction.captured",
"transaction.declined"
],
"description": "Production sync"
}
प्रतिक्रिया में एक signing_secret है — इसे संग्रहीत करें; payloads सत्यापित करने के लिए आपको इसकी आवश्यकता होगी। प्रत्येक इवेंट प्राप्त करने के लिए "*" की सदस्यता लें।
Webhooks · हस्ताक्षर सत्यापन
प्रत्येक webhook Cryptocardium-Signature header में HMAC-SHA256 हस्ताक्षर रखता है:
Cryptocardium-Signature: t=1718999999,v1=4a8b2f0e6c9d...
Cryptocardium-Event-Id: evt_a1b2c3d4
Cryptocardium-Delivery: dlv_8f3a91...
अपने signing_secret के साथ "{t}.{rawBody}" पर अपेक्षित हस्ताक्षर की गणना करें। constant-time function का उपयोग करके तुलना करें।
Node.js
import crypto from 'crypto';
export function verify(rawBody, sigHeader, secret) {
const [t, v1] = sigHeader.split(',')
.map(s => s.split('=')[1]);
const expected = crypto
.createHmac('sha256', secret)
.update(`${t}.${rawBody}`)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(v1), Buffer.from(expected)
);
}
Python
import hmac, hashlib
def verify(raw_body: bytes, sig_header: str, secret: str) -> bool:
parts = dict(p.split('=') for p in sig_header.split(','))
t, v1 = parts['t'], parts['v1']
expected = hmac.new(
secret.encode(),
f"{t}.{raw_body.decode()}".encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(v1, expected)
PHP
function verify($rawBody, $sigHeader, $secret): bool {
$parts = [];
foreach (explode(',', $sigHeader) as $p) {
[$k, $v] = explode('=', $p, 2);
$parts[$k] = $v;
}
$expected = hash_hmac('sha256',
"{$parts['t']}.{$rawBody}", $secret);
return hash_equals($expected, $parts['v1']);
}
Webhooks · पुनः प्रयास & रिप्ले
At-least-once delivery। हम किसी भी non-2xx प्रतिक्रिया या timeout (10 s) पर पुनः प्रयास करते हैं।
| प्रयास | विलंब |
|---|---|
| 1 | तत्काल |
| 2 | 30 s |
| 3 | 5 min |
| 4 | 30 min |
| 5 | 2 h |
| 6 | 12 h |
| 7 | 24 h (अंतिम) |
dashboard से या POST /v1/webhooks/:id/replay/:event_id के माध्यम से कोई भी इवेंट रिप्ले करें। अपनी तरफ deduplication के लिए Cryptocardium-Event-Id header का उपयोग करें।
इवेंट सूची
account.created
account.signed_in
account.signed_out
account.password_changed
account.totp_enabled
account.totp_disabled
topup.created
topup.confirmed
topup.expired
topup.cancelled
topup.error
card.issued
card.loaded
card.unloaded
card.frozen
card.unfrozen
card.cancelled
card.replaced
transaction.authorized
transaction.captured
transaction.refunded
transaction.declined
transaction.reversed
dispute.opened
dispute.responded
dispute.won
dispute.lost
withdrawal.created
withdrawal.broadcasted
withdrawal.confirmed
withdrawal.failed
system.maintenance
system.deprecation
MCP सर्वर
हम https://mcp.cryptocardium.com/v1 पर एक Model Context Protocol सर्वर होस्ट करते हैं। यह REST endpoints से 1:1 मैपिंग करने वाले 40+ टूल expose करता है, एजेंट-अनुकूल नामों के साथ (create_topup, issue_card, reveal_pan, आदि)।
Transport: Streamable HTTP। Auth: OAuth 2.1 with Dynamic Client Registration — एजेंट पहले connect पर स्वयं नामांकित होते हैं, एजेंट की config में कोई API key paste करने की आवश्यकता नहीं।
MCP · क्लाइंट सेटअप
Claude Desktop / Claude Code
// ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"cryptocardium": {
"url": "https://mcp.cryptocardium.com/v1",
"transport": "http"
}
}
}
Cursor / Continue / mcp-cli
# Adds the server, kicks off OAuth DCR on first connect
mcp-cli add cryptocardium \
--url https://mcp.cryptocardium.com/v1 \
--auth oauth
अपने browser में ऑथराइज़ करने के बाद, एजेंट को catalog के प्रत्येक टूल तक पहुँच मिलती है (या केवल वे जो आपने granted किए, यदि आपने scope सीमित किया)।
MCP · टूल सूची
टूल REST endpoints को मिरर करते हैं। एक छोटा नमूना (पूरी सूची /api में है):
create_account
sign_in
get_account
enable_2fa
get_balance
create_topup
withdraw
issue_card
load_card
reveal_pan
freeze_card
set_card_limits
list_transactions
get_activity
file_dispute
MCP · OAuth 2.1 + DCR
एजेंट RFC 7591 के माध्यम से स्वयं को dynamically पंजीकृत करते हैं। Flow:
- एजेंट
POST /oauth/registerकरता है —client_id&client_secretप्राप्त करता है। - उपयोगकर्ता को browser में ऑथराइज़ करने के लिए prompt किया जाता है (एकल-बार)।
- एजेंट
access_token(scoped, time-limited) प्राप्त करता है। - बाद के अनुरोध JWT bearer रखते हैं।
प्रति-टूल स्कोप
रजिस्ट्रेशन के समय scope= पास करके किसी एजेंट को केवल-पढ़ने, किसी विशेष कार्ड, या टूल के एक उपसमूह तक सीमित करें। उदाहरण:
scope=read # list & get only, no writes
scope=cards:write # manage cards but not withdraw
scope=card:card_8f3a91b7c4d2 # single card
SDK और उदाहरण
आधिकारिक SDK जल्द आ रहे हैं। तब तक, API एक सपाट REST सतह है — हर आधुनिक HTTP क्लाइंट इसे संभालता है।
Node.js (fetch)
const res = await fetch('https://api.cryptocardium.com/v1/cards', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CCM_KEY}`,
'Idempotency-Key': `card_${crypto.randomUUID()}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
type: 'virtual', bin: '489517', load_usd: 300
})
});
const card = await res.json();
Python (requests)
import requests, os, uuid
r = requests.post(
'https://api.cryptocardium.com/v1/cards',
headers={
'Authorization': f"Bearer {os.environ['CCM_KEY']}",
'Idempotency-Key': f"card_{uuid.uuid4()}",
},
json={'type': 'virtual', 'bin': '489517', 'load_usd': 300}
)
card = r.json()
PHP (curl)
$ch = curl_init('https://api.cryptocardium.com/v1/cards');
curl_setopt_array($ch, [
CURLOPT_POST => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $_ENV['CCM_KEY'],
'Idempotency-Key: card_' . bin2hex(random_bytes(16)),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'type' => 'virtual',
'bin' => '489517',
'load_usd' => 300,
]),
]);
$card = json_decode(curl_exec($ch), true);
परिवर्तन-लॉग
अतिरिक्त परिवर्तन पारदर्शी रूप से जारी होते हैं। ब्रेकिंग परिवर्तन एक नए वर्शन प्रिफिक्स के अंतर्गत आते हैं।
-
2026-05-19 · v1.4
जोड़ा गया
POST /v1/cards/:id/loadऔर/unloadअब परमाणु हैं।card.loadedवेबहुक इवेंट जोड़ा गया। -
2026-05-18 · v1.3
जोड़ा गया
MCP सर्वर
mcp.cryptocardium.comपर लाइव। OAuth 2.1 DCR। REST से 40+ टूल मैप किए गए। -
2026-05-17 · v1.2
जोड़ा गया
फिज़िकल गोल्ड कार्ड प्रोग्राम (BIN 448585), Visa Business और Visa Gold पर 3-D Secure।
-
2026-05-15 · v1.1
बदला गया
टॉप-अप न्यूनतम सैंडबॉक्स रूटिंग के लिए $20 और प्रोडक्शन रेल के लिए $200 तक कम किया गया।
-
2026-05-12 · v1.0
जारी किया गया
v1 LTS। 50+ एंडपॉइंट। Bearer auth + idempotency keys + HMAC webhooks।
सहायता
अटके हुए हैं? दो रास्ते हैं:
- हेल्प सेंटर FAQ देखें — 30+ उत्तर, खोज-योग्य।
- सपोर्ट टिकट खोलें — केवल सक्रिय कार्डधारकों के लिए, 24 घंटे में जवाब।
विफल रिस्पॉन्स से request_id शामिल करें — इससे समाधान 10× तेज़ हो जाता है।