Sanjana Digital Service

Build faster with the SDS API

Production‑grade endpoints for PAN, wallet, and identity workflows. Clean JSON, predictable latency, and clear errors. Integrate in minutes—scale to millions.

Get API Key View Docs ⚡ P95: 52ms
🔒 OAuth2 / HMAC 📈 Rate‑limit smart 🧰 SDKs: JS · Python · cURL
cURL
JavaScript
Node
curl -X GET \
  https://api.sanjanadigitalservice.com/v1/wallet/balance \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Accept: application/json"

Why developers choose SDS API

0 req/min live

Low Latency

Global edge + caching. Typical P95 under 75ms with burst protection.

🛡️

Secure by Design

JWT/OAuth2, IP allow‑lists, HMAC request signing, and audit logs.

🧱

Predictable Errors

Error codes with remediation tips: rate_limited, invalid_scope, etc.

🧰

Great DX

Beautiful docs, SDKs, Postman collection, and example apps.

🚀

Scales Effortlessly

Horizontally scalable workers (BullMQ) + per‑user cache controls.

📊

Observability

Structured logs, traces, metrics, and per‑key rate dashboards.

Popular endpoints

Use your Bearer API key. All responses are JSON. Versioned under /v1.

👛

/wallet/balance

Get current wallet balance for the authenticated account.

GET /v1/wallet/balance
200 OK
{ "balance": 15420.55, "currency": "INR", "updatedAt": "2025-09-21T06:15:00Z" }
🧾

/pan/validate

Validate a PAN with checksum and status.

POST /v1/pan/validate
Body: { "pan": "ABCDE1234F" }
200 OK
{ "pan": "ABCDE1234F", "valid": true, "name": "RAHUL S", "status": "active" }
💸

/wallet/passbook

Paginated ledger with filters for date/type.

GET /v1/wallet/passbook?page=1&pageSize=25&type=credit
200 OK
{ "items": [ { "id":"txn_1", "type":"credit", "amount": 500 } ], "next": null }

Quickstart

  1. Generate an API Key in your SDS Dashboard.
  2. Send a request with Authorization: Bearer <KEY>.
  3. Pin your base URL: https://api.sanjanadigitalservice.com/v1.
  4. Use idempotency keys for POST: Idempotency-Key: uuidv4.
🔑

Authentication

We support Bearer, OAuth2 client‑credentials, and HMAC SHA‑256 signing.

// HMAC (pseudo)
const signature = HMAC_SHA256(secret, method + path + body + timestamp)
fetch(path, { headers: { 'X-Signature': signature, 'X-Timestamp': timestamp } })
📦

Idempotency

Safely retry POST without duplication by sending the same key within 24h.

POST /v1/wallet/recharge
Idempotency-Key: 34f3a2ec-9b3c-4c03-a3e0-2a4bf
{ "amount": 1000, "method": "upi" }
🧭

Errors

Clear errors help you fix fast.

429 Too Many Requests
{ "status": false, "reason": "rate_limited", "recommendWaitMs": 44000 }
Copied to clipboard