Developer & Creator Documentation

MyScoop API, Bot & Webhook Reference

Learn how to connect our official bot (@My_Scoop_Bot), set up cloud SaaS webhooks, configure OAuth 2.0 Single Sign-On, and verify software licenses.

1. Getting Started

Core architecture, API environments, authentication, and platform models.

Platform Overview & Models

Architecture

MyScoop is the India-first monetization and billing gateway for creators, developers, and community leaders. It enables 1-Click UPI & UPI AutoPay across three distinct fulfillment models.

Implementation Steps
1Model 1: Cloud SaaS & Web Apps
Hosted by the creator on their own cloud infrastructure (Vercel, AWS, or any cloud host). Buyers open directly in their browser with zero ZIP downloads. MyScoop manages recurring UPI AutoPay billing and account provisioning via authenticated webhooks.
2Model 2: Paid Telegram VIP Communities
Automated community daemon (@My_Scoop_Bot) generates single-use 60-minute invite links and automatically revokes access when monthly UPI AutoPay lapses.
3Model 3: Downloadable Software & Digital Files
Code boilerplates, desktop tools, and digital assets delivered via 15-minute expiring signed URLs with RFC 7233 byte-range connection resumption and cryptographic license keys.
Integration Guardrails
  • All API requests must use HTTPS and include standard Bearer authorization headers.
  • Platform fee structure: Flat 10.0% constant commission across all plans (Digital Store & Communities at ₹0/mo upfront, and Video Academy at ₹999/mo with 30 GB private cloud video storage) with weekly Wednesday bank settlements (Min ₹500, KYC verified).

API Environments & Endpoints

Base URLs

MyScoop provides production and staging environments for developer testing. Use the live endpoints for production integrations.

Parameters & Schema
Field / EndpointTypeDescription
Production Base URLstringhttps://myscoop.in/api/v1
Telegram Webhook Endpointstringhttps://myscoop.in/api/webhooks/telegram
License Verification APIstringhttps://myscoop.in/api/v1/licenses/verify
Access Check APIstringhttps://myscoop.in/api/v1/access/check
Ping Health Endpoint
curl -X GET "https://myscoop.in/api/health" \
  -H "Accept: application/json"

2. Telegram VIP Automation

Automate private channel invites, member verification, and auto-kicking via @My_Scoop_Bot.

Connecting @My_Scoop_Bot to Channels

@My_Scoop_Bot

Zero code is required for creators. Simply add our official verified bot (@My_Scoop_Bot) as an administrator to your private Telegram channel or group.

Implementation Steps
1Step 1: Open Channel Settings in Telegram
Navigate to your private channel or supergroup settings -> Administrators -> Add Administrator.
2Step 2: Search for @My_Scoop_Bot
Type @My_Scoop_Bot (Display Name: MyScoopBot, ID: 8604392883) and select it.
3Step 3: Grant the 2 Required Permissions
Enable 'Invite Users via Link' (required to create single-use 1-time join links) and 'Ban Users' (required to gracefully remove members when recurring AutoPay lapses).
4Step 4: Link Channel in MyScoop Hub
In your creator hub (app.myscoop.in), enter your channel ID to complete the link.
Integration Guardrails
  • Do NOT grant permissions like 'Post Messages' or 'Change Channel Info' unless you want the bot to broadcast announcements.
  • Single-use join links have member_limit: 1 and expire in 60 minutes, preventing unauthorized link sharing in piracy groups.

Telegram Bot API Integration

Webhook API

For platform developers building custom community bots or inspecting webhook health.

cURL: Generate 1-Time Join Link
curl -X POST "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/createChatInviteLink" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": "-1001234567890",
    "name": "Order ord_8921a",
    "expire_date": 1729353600,
    "member_limit": 1
  }'
Node.js: Create Single-Use Link
import { createSingleUseInviteLink } from "@/lib/telegram";

// Creates a 60-minute, 1-member link automatically
const response = await createSingleUseInviteLink("-1001234567890", "VIP Member Pass", 60);

if (response.ok && response.result) {
  console.log("Single-use invite link:", response.result.invite_link);
}

3. Cloud SaaS & Web Apps

Sell micro-SaaS and web applications with recurring UPI AutoPay and instant browser access.

The 'Open Directly & Use' Architecture

Web App SaaS

Unlike downloadable ZIP files, SaaS buyers access your tool directly in their browser. You host your web application on your own cloud (AWS, Vercel, or custom server). MyScoop handles the Indian checkout, recurring UPI AutoPay billing, and account provisioning.

Implementation Steps
11. Buyer Subscribes via 1-Click UPI
The customer authorizes a monthly recurring mandate on PhonePe, Google Pay, or Paytm.
22. MyScoop Dispatches subscription.created Webhook
Your server receives the buyer's name, email, phone, and plan, and automatically provisions their account.
33. Instant 'Launch App' in Buyer Library
Inside app.myscoop.in/library, the buyer clicks 'Launch App' and is seamlessly redirected into your app with a pre-authenticated session.

HMAC Signature Verification

Security

Every webhook contains an 'x-myscoop-signature' header. Always compute the HMAC-SHA256 signature using your webhook secret to verify authenticity.

TypeScript / Node.js (Express / Next.js)
import crypto from "crypto";

export function verifyMyScoopWebhook(
  rawBody: string,
  signature: string,
  secret: string
): boolean {
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}
Python (FastAPI / Flask)
import hmac
import hashlib

def verify_myscoop_webhook(raw_body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode('utf-8'),
        raw_body,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

4. Single Sign-On (OAuth 2.0)

Enable 'Log in with MyScoop' on your SaaS so buyers never need to remember separate passwords.

How Buyers Re-Login After Logout

OAuth 2.0 / SSO

When a customer logs out of your SaaS app, they do not need to create or reset passwords. They re-authenticate via OAuth 2.0 or launch directly from their MyScoop Buyer Library.

Implementation Steps
1Step 1: 'Log in with MyScoop' Button
Place a button on your login screen redirecting to https://myscoop.in/oauth/authorize?client_id=...&redirect_uri=...
2Step 2: Passwordless Verification
The user enters their WhatsApp phone number or email and completes a 1-tap OTP or magic link.
3Step 3: Signed Token Callback
MyScoop redirects to your callback URL with an authorization code that your server exchanges for active subscription status (tier: 'pro').
Authorization URL Example
https://myscoop.in/oauth/authorize?
  client_id=app_89f12ab
  &redirect_uri=https://app.foundersaas.com/api/auth/callback
  &response_type=code
  &scope=read:subscription,user:profile

5. Software Licenses & Digital Files

Distribute desktop apps, developer code templates, and PDFs with DRM and license APIs.

License Key Verification API

POST /api/v1/licenses/verify

Validate software license keys on application startup to verify active subscriptions and enforce device seat limits.

cURL: Verify License Key
curl -X POST "https://myscoop.in/api/v1/licenses/verify" \
  -H "Content-Type: application/json" \
  -d '{
    "license_key": "SCP-892F-411B-A92D",
    "instance_id": "macbook-pro-m3-serial"
  }'
Response Payload (200 OK)
{
  "valid": true,
  "product_id": "prod_nextjs_boilerplate",
  "plan": "developer_commercial",
  "customer_email": "dev@company.com",
  "seats_allowed": 2,
  "seats_activated": 1,
  "activated_at": "2026-10-19T14:30:00Z"
}

Resilient 15-Minute Download Streams (RFC 7233)

S3 Signed URLs

Digital files use 15-minute expiring cryptographic signed URLs. The 15-minute window only applies to the initial handshake. Once streaming begins, large files download to 100% completion regardless of connection speed. Network drops resume automatically via RFC 7233 byte-ranges.

6. Webhook Events Catalog

Full event schemas and payload definitions for automated platform integration.

Supported Webhook Events

Event Catalog

MyScoop dispatches the following events to your configured HTTPS webhook endpoint:

Parameters & Schema
Field / EndpointTypeDescription
subscription.createdeventFired when a buyer completes initial UPI payment and mandate authorization. Provision user access.
subscription.renewedeventFired when monthly UPI AutoPay charge succeeds. Extend user validity by +30 days.
subscription.cancelledeventFired when user revokes AutoPay mandate. Retain access until current_period_end, then downgrade.
subscription.haltedeventFired when recurring bank debit fails. Trigger 48-hour retry grace period before feature lock.
order.refundedeventFired when a refund is processed. Revoke user access or kick from Telegram VIP group.
Sample subscription.created Payload
{
  "id": "evt_982103810",
  "event": "subscription.created",
  "created_at": 1729350000,
  "data": {
    "subscription_id": "sub_8921f0a",
    "customer": {
      "name": "Rohan Sharma",
      "email": "rohan@example.com",
      "phone": "+919876543210"
    },
    "product_id": "prod_saas_crm",
    "plan": "pro_monthly",
    "amount": 99900,
    "currency": "INR",
    "current_period_end": 1731942000
  }
}

7. Marketing & Communication Studio

Automated WhatsApp & Email receipts, 15-min abandoned cart recovery, pre-paid wallet architecture, and broadcast campaigns.

Marketing Studio & Pre-Paid Wallet

Economics & Setup

MyScoop integrates omnichannel communications directly into your storefront. All transactional communication (order receipts, download links, tax invoices, abandoned cart recovery) is 100% Free Forever on all tiers. For marketing broadcasts, creators enjoy ₹0/month software fees—paying strictly per message via a flexible pre-paid wallet.

Implementation Steps
1Transactional Order Receipts & Invoices (₹0 Free)
Dispatched automatically over WhatsApp and Email upon payment completion. Includes secure 15-minute expiring download links, single-use Telegram invite keys, and GST tax invoices. Unlimited on all plans.
2Automated Abandoned Cart Recovery (₹0 Free)
Automatically triggers 15 minutes after a user drops out of checkout. Dispatches an automated WhatsApp message with a 1-click checkout recovery link, recovering 15% to 25% of lost creator revenue.
3Email Marketing Broadcasts (₹0.05 / email)
Send rich HTML product launch announcements, discount drops, and newsletters directly to customer inboxes with 99%+ deliverability. Charged at 5 paise per email sent via wallet balance.
4WhatsApp Marketing Broadcasts (₹1.25 / msg)
Send high-open rate (~98%) WhatsApp broadcast campaigns using 4 pre-approved templates with rich image banners and CTA buttons. Charged at ₹1.25 per delivered message via wallet balance.
Integration Guardrails
  • Pre-paid wallet top-ups are available via 1-Click UPI: ₹100 (2,000 emails or 80 WhatsApp), ₹500 (10,000 emails or 400 WhatsApp), and ₹2,000 (40,000 emails or 1,600 WhatsApp).
  • Unused wallet balance never expires. Zero monthly SaaS retainers.
  • Fully compliant with India's Digital Personal Data Protection Act (DPDP Act, 2023) with mandatory one-click unsubscribe headers.

Broadcast API & Dispatch Triggers

API Reference

Trigger programmatic WhatsApp and Email marketing campaigns to your verified audience using MyScoop's Marketing API.

Parameters & Schema
Field / EndpointTypeDescription
channelstring (email | whatsapp)The communication rail to dispatch across.
template_idstringPre-approved template identifier: 'product_launch', 'flash_discount', 'event_reminder', or 'community_update'.
audience_filterobjectTarget criteria: e.g. { product_id: 'prod_123', status: 'active' } or audience CSV file reference.
variablesobjectDynamic template parameters (e.g. {{creator_name}}, {{product_name}}, {{discount_code}}, {{cta_url}}).
Dispatch WhatsApp Broadcast Campaign
curl -X POST https://api.myscoop.in/v1/marketing/broadcasts \
  -H "Authorization: Bearer $MYSCOOP_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "whatsapp",
    "template_id": "flash_discount",
    "audience_filter": { "product_id": "prod_options_algo" },
    "variables": {
      "discount_percent": "25",
      "validity_hours": "24",
      "cta_url": "https://myscoop.in/c/aaravtrades?coupon=FLASH25"
    }
  }'
TypeScript SDK Broadcast Dispatch
import { MyScoop } from "@myscoop/sdk";

// Your API key — MyScoop dashboard -> Settings -> API keys. It is YOUR OWN
// project credential: read it from your secret store, keep it server-side,
// and note that no MyScoop server variable is involved (there is no
// MYSCOOP_API_KEY to set on our side).
const scoop = new MyScoop({ apiKey: "msk_live_YOUR_KEY" });

// Trigger high-converting WhatsApp flash drop
const broadcast = await scoop.marketing.broadcasts.create({
  channel: "whatsapp",
  templateId: "flash_discount",
  audienceFilter: { productId: "prod_options_algo" },
  variables: {
    discountPercent: "25",
    validityHours: "24",
    ctaUrl: "https://myscoop.in/c/aaravtrades?coupon=FLASH25",
  },
});

console.log(`Dispatched to ${broadcast.recipientCount} buyers. Cost: ₹${broadcast.costInr}`);
Integration Guardrails
  • The API key is YOUR OWN project credential, minted in the MyScoop dashboard (Settings -> API keys). Load it in your application the way you load any other secret of yours (an env var such as MYSCOOP_API_TOKEN on YOUR server) and keep it server-side. It is not a MyScoop deployment variable: no variable of that name exists on our side, and there is nothing for an operator to set here.