Vestige data API: bonus, PV, orders
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
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/otposintSends 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/sessionosintExchanges 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/meosintReturns the signed-in distributor card: distributorName, mobileNumber, email and uplineId.
Auth: Bearer accessToken from POST /v1/vestige/session.
- distributorId
- distributorName
- DistributorFirstName
- DistributorLastName
- mobileNumber
- 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/uplineopendataReturns 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/bonusopenfinanceReturns 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/payoutsopenfinanceReturns 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/pointsopendataReturns 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/itemsopendataPages 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/cartopendataAdds 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/ordersopendataPages 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}opendataReturns 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/trackopendataReturns 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