প্রকাশ্য ক্যাটালগ
GET /api/v1/catalog নির্বাচিত সেবা ও দেশের ক্যাটালগ দেয়। এটি বর্ণনামূলক তথ্য, প্রদানকারীর লাইভ মজুত নয়। GET /openapi.json বর্তমান HTTP endpoint বোঝায়। প্রদানকারীর তথ্য ব্রাউজারে পাঠানো হয় না।
ব্যবহারকারী-নির্দিষ্ট মূল্য প্রস্তাব
POST /api/v1/quotes পরিচয় যাচাই করা same-origin session থেকে সেবা ও দেশ নেয়। মূল্য প্রস্তাব ওই ব্যবহারকারীর এবং 60 সেকেন্ডে শেষ হয়। USD অঙ্ক সার্ভারে যাচাই করা মুদ্রা রূপান্তর, বাড়তি মূল্য ও সর্বনিম্ন দিয়ে হিসাব হয়।
Idempotent অর্ডার
POST /api/v1/orders quoteId ও Idempotency-Key নেয়। একই key দিয়ে আবার চেষ্টা করলে আরেক নম্বর না কিনে একই অর্ডার ফেরায়। ওয়ালেট সংরক্ষণ atomic হয়। অস্পষ্ট উত্তর অর্ডার পর্যালোচনায় রাখে, স্বয়ংক্রিয় দ্বিতীয় কেনা চালু করে না।
অবস্থা ও সম্পন্ন করা
GET /api/v1/orders/{id} নিজের অর্ডার ও SMS অবস্থা পড়ে। একই endpoint-এ finish বা cancel দিয়ে POST করলে অবস্থা পরিবর্তন চায়। সার্ভার প্রথম 120 সেকেন্ডের বাতিল-নিষেধ মানে এবং প্রদানকারীর নিশ্চিতকরণের পর একবার ফেরত লেখে।
পেমেন্ট নিশ্চিতকরণ
Stripe Checkout শুধু যাচাইকৃত webhook এবং পরিচয় যাচাই করে পেমেন্ট পরীক্ষা করার পর সংশ্লিষ্ট প্রকৃত বা পরীক্ষামূলক ওয়ালেটে ব্যালেন্স যোগ করে। দেওয়া প্রকৃত ও পরীক্ষামূলক কী ভিন্ন Stripe অ্যাকাউন্টের, তাই তাদের কী, endpoint secret এবং জমা আলাদা রাখা হয়। NOWPayments যাচাইকৃত IPN, ইনভয়েসের সঙ্গে মিল এবং ±0.50% অর্থের সহনসীমাসহ চূড়ান্ত পেমেন্ট পরীক্ষা ব্যবহার করে। ব্রাউজারের সফল রিডাইরেক্ট কখনো পেমেন্টের প্রমাণ নয়।
প্রবেশ ও প্রাপ্যতা
মূল সাইট ও ক্যাটালগ প্রকাশ্য। ওয়ালেট, মূল্য প্রস্তাব ও অর্ডারে পরিচয় ও মালিকানা যাচাই লাগে। বাস্তব কাজ কনফিগার করা তথ্য, প্রদানকারীর প্রবেশ ও যাচাই করা নিশ্চিতকরণের ওপর নির্ভর করে। API উদাহরণ পেইড কেনা বা পুরো পেমেন্ট ধাপ ইতিমধ্যে যাচাই হয়েছে বলে দাবি করে না।
GET /api/v1/catalog
GET /api/v1/offers?service=whatsapp&country=usa
POST /api/v1/quotes
Content-Type: application/json
{"service":"whatsapp","country":"usa"}
POST /api/v1/orders
Idempotency-Key: <unique-request-key>
{"quoteId":"<owned-unexpired-quote-id>"}
GET /api/v1/orders/<order-id>
POST /api/v1/orders/<order-id>
{"action":"cancel"}প্যানেলে ফিরুন