Vestige Online Shopping App icon

Vestige data API: bonus, PV, orders

Vestige Marketing Pvt. Ltd. · E-commerce 4.4 ★

Vestige Online Shopping App is Vestige Marketing Pvt. Ltd.'s official Android client for independent distributors who shop the brand's wellness catalogue and run a downline in India. After signing in with a distributor ID they browse GPS-local stock across health supplements, Ayurvedic medicines, health food, personal care, home hygiene, agri, oral care, men's grooming, premium skin care and colour cosmetics, add lines for themselves or a downline, check out for home delivery or nearby-store pickup, then open bonus, payouts, vouchers, eKYC, referral, training schedules and consistency from the same dashboard. The developer sits at S-332 Panchsheel Park, New Delhi, Delhi 110017, India; the Play listing is rated 4.4 from about 86,000 reviews with 10 million-plus downloads. It is a distributor shop-plus-back-office rather than a generic marketplace, sitting next to other Indian direct-selling catalogue apps that field sellers open between orders.

Bonus chips stamp selfPv against groupPv with totalPointValue and currentCumulativePointValue. Catalog rows key on itemCode next to mrp, distributorPrice and pv. Order files use logNumber and invoiceNumber; the signed-in card is distributorId with distributorName and uplineId.

Field bots overlay the same selfPv the Panchsheel Park tenant already shows; payout jobs join tds with yearmonth; downline shops POST the same itemCode the catalogue already lists — openData Studio turns that distributor loop into callable open data.

Screenshots

  • Vestige Online Shopping App screenshot 1
  • Vestige Online Shopping App screenshot 2
  • Vestige Online Shopping App screenshot 3
  • Vestige Online Shopping App screenshot 4
  • Vestige Online Shopping App screenshot 5
  • Vestige Online Shopping App screenshot 6
  • Vestige Online Shopping App screenshot 7
  • Vestige Online Shopping App screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Request login OTP

    POST /v1/vestige/otp osint

    Sends a one-time login code for the named distributorId on SMS (or email).

    Auth: Unauthenticated. Body is distributorId plus mobileNumber (or email) and country code.

    • distributorId
    • mobileNumber
    • countryCode
    • otp
    • status
    POST /v1/vestige/otp HTTP/1.1
    Content-Type: application/json
    
    {
      "distributorId": "62868326",
      "mobileNumber": "9876543210",
      "countryCode": "91"
    }
    {
      "status": true,
      "otp": "sent"
    }
  • Sign in for access token

    POST /v1/vestige/session osint

    Exchanges distributorId plus password or OTP for accessToken, authToken and authTokenV2.

    Auth: Unauthenticated. Body is distributorId plus password or the OTP. Returns accessToken and authToken; later calls send Authorization Bearer accessToken.

    • distributorId
    • password
    • otp
    • accessToken
    • authToken
    • authTokenV2
    POST /v1/vestige/session HTTP/1.1
    Content-Type: application/json
    
    {
      "distributorId": "62868326",
      "password": "••••",
      "otp": "482193"
    }
    {
      "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9",
      "authToken": "at-88c1",
      "authTokenV2": "at2-19",
      "distributorId": "62868326"
    }
  • Signed-in distributor profile

    GET /v1/vestige/me osint

    Returns the signed-in distributor card: distributorName, mobileNumber, email and uplineId.

    Auth: Bearer accessToken from POST /v1/vestige/session.

    • distributorId
    • distributorName
    • DistributorFirstName
    • DistributorLastName
    • mobileNumber
    • email
    • uplineId
    GET /v1/vestige/me HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "distributorId": "62868326",
      "distributorName": "Anita Rao",
      "DistributorFirstName": "Anita",
      "DistributorLastName": "Rao",
      "mobileNumber": "9876543210",
      "email": "[email protected]",
      "uplineId": "220114"
    }
  • Upline card

    GET /v1/vestige/upline opendata

    Returns the sponsor/upline card plus DownlineCount for the signed-in distributor.

    Auth: Bearer accessToken.

    • uplineId
    • distributorName
    • mobileNumber
    • DownlineCount
    GET /v1/vestige/upline HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "uplineId": "220114",
      "distributorName": "Priya Shah",
      "mobileNumber": "9810011122",
      "DownlineCount": 18
    }
  • Bonus detail

    GET /v1/vestige/bonus openfinance

    Returns the bonus card: selfPv, groupPv, totalPointValue and APV.

    Auth: Bearer accessToken.

    • bonusDetails
    • selfPv
    • groupPv
    • totalPointValue
    • APV
    GET /v1/vestige/bonus HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "bonusDetails": {
        "selfPv": 420.0,
        "groupPv": 8810.5,
        "totalPointValue": 9230.5,
        "APV": 210.0
      }
    }
  • Monthly payouts

    GET /v1/vestige/payouts openfinance

    Returns the monthly payout card with tds and status for yearmonth.

    Auth: Bearer accessToken. Query yearmonth of the payout cycle.

    • payoutDetails
    • yearmonth
    • tds
    • status
    GET /v1/vestige/payouts?yearmonth=202610 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "payoutDetails": {
        "yearmonth": "202610",
        "tds": 1200.0,
        "status": "Paid"
      }
    }
  • Point-value ledger

    GET /v1/vestige/points opendata

    Returns the PV ledger: selfPointValue, groupPointValue and currentCumulativePointValue.

    Auth: Bearer accessToken.

    • pointValue
    • selfPointValue
    • groupPointValue
    • currentCumulativePointValue
    • exclusivePointValue
    • selfPv
    • groupPv
    GET /v1/vestige/points HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "pointValue": 420.0,
      "selfPointValue": 420.0,
      "groupPointValue": 8810.5,
      "currentCumulativePointValue": 12400.0,
      "exclusivePointValue": 80.0,
      "selfPv": 420.0,
      "groupPv": 8810.5
    }
  • Catalog item list

    GET /v1/vestige/items opendata

    Pages catalog rows with itemCode, mrp, distributorPrice and pv for the GPS location.

    Auth: Bearer accessToken. Optional query locationCode for GPS store stock.

    • itemCode
    • itemName
    • mrp
    • distributorPrice
    • dp
    • pv
    • pointValue
    • locationCode
    GET /v1/vestige/items?locationCode=DEL HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "items": [{
        "itemCode": "23090A",
        "itemName": "Enerva Energy Bar",
        "mrp": 450.0,
        "distributorPrice": 360.0,
        "dp": 360.0,
        "pv": 12.5,
        "pointValue": 12.5
      }]
    }
  • Add cart line

    POST /v1/vestige/cart opendata

    Adds an itemCode line with qty to cartId for the signed-in distributor (or a downline cart).

    Auth: Bearer accessToken.

    • cartId
    • itemCode
    • qty
    • status
    POST /v1/vestige/cart HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Content-Type: application/json
    
    {
      "cartId": "c-4410",
      "itemCode": "23090A",
      "qty": 2
    }
    {
      "cartId": "c-4410",
      "itemCode": "23090A",
      "qty": 2,
      "status": true
    }
  • Order list

    GET /v1/vestige/orders opendata

    Pages the distributor's orders keyed by logNumber, status and invoiceNumber.

    Auth: Bearer accessToken.

    • logNumber
    • orderId
    • status
    • invoiceNumber
    GET /v1/vestige/orders HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "orders": [{
        "logNumber": "LOG-778120",
        "orderId": "778120",
        "status": "Delivered",
        "invoiceNumber": "INV-778120"
      }]
    }
  • Order details

    GET /v1/vestige/orders/{logNumber} opendata

    Returns one order's lines: itemCode, qty and distributorPrice under logNumber.

    Auth: Bearer accessToken.

    • logNumber
    • orderId
    • status
    • invoiceNumber
    • itemCode
    • qty
    • distributorPrice
    GET /v1/vestige/orders/LOG-778120 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "logNumber": "LOG-778120",
      "orderId": "778120",
      "status": "Delivered",
      "invoiceNumber": "INV-778120",
      "items": [{
        "itemCode": "23090A",
        "qty": 2,
        "distributorPrice": 360.0
      }]
    }
  • Track order

    GET /v1/vestige/track opendata

    Returns the current tracking status for logNumber.

    Auth: Bearer accessToken. Query logNumber.

    • logNumber
    • status
    • invoiceNumber
    GET /v1/vestige/track?logNumber=LOG-778120 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "logNumber": "LOG-778120",
      "status": "OutForDelivery",
      "invoiceNumber": "INV-778120"
    }

Data categories

  • distributor profile
  • upline
  • bonus PV
  • payouts
  • catalog items
  • cart
  • orders
  • tracking
  • auth-sessions

Where teams use this data

  • Bonus overlay for a field bot

    A helper polls GET /v1/vestige/bonus (selfPv, groupPv, totalPointValue) with GET /v1/vestige/points (selfPointValue, currentCumulativePointValue) so a sponsor bot can flag a quiet month without opening the app.

  • Payout plus TDS archive

    A payroll job reads GET /v1/vestige/payouts (payoutDetails, tds, yearmonth) next to GET /v1/vestige/me (distributorId, distributorName) so each cycle's TDS sits beside the distributor card.

  • Catalog and cart for a downline shop

    A reorder bot pages GET /v1/vestige/items (itemCode, mrp, distributorPrice, pv) then POST /v1/vestige/cart (cartId, qty) so a downline restock lands without typing SKUs.

  • Order and tracking board

    A warehouse board joins GET /v1/vestige/orders (logNumber, invoiceNumber) with GET /v1/vestige/orders/{logNumber} and GET /v1/vestige/track (status) so pickup vs home-delivery rows share one timeline.

Frequently asked questions

How does Vestige authenticate API calls?

POST /v1/vestige/otp sends a one-time code for distributorId. POST /v1/vestige/session exchanges that distributorId plus password or OTP for accessToken, authToken and authTokenV2. Later calls send Authorization Bearer accessToken.

Which endpoints expose bonus PV and payouts?

GET /v1/vestige/bonus returns selfPv, groupPv and totalPointValue. GET /v1/vestige/points returns selfPointValue, groupPointValue and currentCumulativePointValue. GET /v1/vestige/payouts returns payoutDetails, tds and yearmonth.

What distributor-profile fields are returned?

GET /v1/vestige/me returns distributorId, distributorName, DistributorFirstName, DistributorLastName, mobileNumber, email and uplineId. GET /v1/vestige/upline returns the sponsor card plus DownlineCount.

Does the API cover catalog, cart, orders and tracking?

Yes. GET /v1/vestige/items lists itemCode, mrp, distributorPrice and pv. POST /v1/vestige/cart adds qty on cartId. GET /v1/vestige/orders lists logNumber and invoiceNumber. GET /v1/vestige/orders/{logNumber} returns line items. GET /v1/vestige/track returns status.

Apps similar to Vestige Online Shopping App

  • Oriflame Business — Oriflame Business is a Schaffhausen consultant back-office for wallet and GroupBP; Vestige is the Delhi-run shop-plus-bonus app with catalog, cart and logNumber.
  • udaan: B2B for Retailers — udaan is a Bengaluru B2B wholesale cart for kirana buyers; Vestige is a brand-owned distributor catalogue with selfPv and payouts rather than trade credit.
  • IndiaMART - B2B Marketplace — IndiaMART is an enquiry-based Indian B2B marketplace; Vestige is Vestige Marketing's own shopping-and-network client for distributors.
  • Vyapar Invoice GST Billing App — Vyapar is a GST invoicing client for shopkeepers; Vestige instead centres on distributorPrice, pv and monthly payouts.
  • Amway — Amway is another direct-selling catalogue whose IBOs track PV and downline; Vestige is Vestige Marketing's Panchsheel Park-run equivalent with store pickup and eKYC.
  • Modicare — Modicare is an Indian direct-selling wellness brand; Vestige covers the same distributor shopping loop plus bonus, payouts and training in one Android client.
  • Herbalife — Herbalife is a global nutrition network-selling brand; Vestige is the India-built wellness-catalogue app distributors open for itemCode, selfPv and logNumber.

Topics

  • vestige api
  • distributor data api
  • selfPv groupPv
  • vestige bonus
  • logNumber order
  • panchsheel park mlm api
  • distributorId
  • india direct selling api

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote