Oriflame Business icon

Oriflame Business data API: wallet, BP, downline

Oriflame Cosmetics AG · Business 4.6 ★

Oriflame Business is Oriflame Cosmetics AG's official Android client for independent consultants who run a personal group in one of the brand's country markets. After picking a market they sign in with the consultant number, then open the personal-group list, wallet history, My Benefits for a catalogue period, Manager Summit, Program Plus, recruitment and VIP / 90-day focus lists, a visualizer, a QR code for the personal store and the digital catalogue. The developer sits at Bleicheplatz 3, 8200 Schaffhausen, Switzerland; the Play listing is rated 4.6 from about 92,000 reviews with 5 million-plus downloads. It is a consultant back-office rather than a shopper catalogue, sitting next to other network-selling tools that field sellers open between orders.

Downline cards list PersonalBP against GroupBP with AvailableWalletBalance, ExpiringWalletAmount and DiscountRate. Benefit periods stamp oriflameWallet next to bankTransferAmount, totalBenefits and bonusesAndCashAwards. Wallet history rows key on transactionAmount, discountType and transactionType; the signed-in card is consultantNumber with careerTitle and sponsorNumber.

Field bots overlay the same PersonalBP the Schaffhausen tenant already shows; payout jobs join oriflameWallet with bankTransferState; downline CRMs store consultantNumber beside GroupBP — openData Studio turns that consultant loop into callable open data.

Screenshots

  • Oriflame Business screenshot 1
  • Oriflame Business screenshot 2
  • Oriflame Business screenshot 3
  • Oriflame Business screenshot 4

API surface

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

  • List enabled markets

    GET /v1/oriflame/markets osint

    Lists enabled market tenants with displayName and type before the consultant signs in.

    Auth: Unauthenticated. The first screen picks a market tenant before login.

    • markets
    • tenant
    • code
    • displayName
    • type
    • isEnabled
    GET /v1/oriflame/markets HTTP/1.1
    Accept: application/json
    {
      "markets": [{
        "tenant": "in",
        "code": "in",
        "displayName": "India",
        "type": "sp",
        "isEnabled": true
      }]
    }
  • Sign in for access token

    POST /v1/oriflame/session osint

    Exchanges the market plus identity-server login for access_token, loginToken and userEnabled.

    Auth: Unauthenticated. Body is market plus the identity-server login. Returns access_token, token_type and expires_in; later calls send Authorization Bearer access_token. Refresh uses refreshToken.

    • market
    • username
    • password
    • grant_type
    • access_token
    • token_type
    • expires_in
    • refreshToken
    • loginToken
    • userEnabled
    POST /v1/oriflame/session HTTP/1.1
    Content-Type: application/json
    
    {
      "market": "in",
      "username": "4410288",
      "password": "••••",
      "grant_type": "authorization_code"
    }
    {
      "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9",
      "token_type": "Bearer",
      "expires_in": "3600",
      "refreshToken": "rt-88c1",
      "loginToken": "lt-19",
      "userEnabled": true
    }
  • Consultant login status

    GET /v1/oriflame/status osint

    Returns loginStatus plus consultantId so the client knows whether the consultant may proceed.

    Auth: Bearer access_token from POST /v1/oriflame/session.

    • loginStatus
    • consultantId
    • customerId
    • userEnabled
    GET /v1/oriflame/status HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "loginStatus": "Active",
      "consultantId": 4410288,
      "customerId": 9100021,
      "userEnabled": true
    }
  • Signed-in consultant profile

    GET /v1/oriflame/me osint

    Returns the signed-in consultant card: consultantNumber, careerTitle, sponsorNumber and preferredLanguage.

    Auth: Bearer access_token from POST /v1/oriflame/session.

    • consultantNumber
    • customerId
    • firstName
    • lastName
    • displayName
    • careerTitle
    • sponsorNumber
    • sponsorName
    • customerTypeId
    • preferredLanguage
    • uniqueId
    • gender
    • title
    GET /v1/oriflame/me HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "consultantNumber": 4410288,
      "customerId": 9100021,
      "firstName": "Anita",
      "lastName": "Rao",
      "displayName": "Anita Rao",
      "careerTitle": "Manager",
      "sponsorNumber": 220114,
      "sponsorName": "Priya Shah",
      "customerTypeId": 2,
      "preferredLanguage": "en-IN",
      "uniqueId": "in-4410288"
    }
  • Personal-group downline list

    GET /v1/oriflame/downline opendata

    Pages personal-group (downline) cards with PersonalBP, GroupBP, AvailableWalletBalance and DiscountRate.

    Auth: Bearer access_token. Query customerId of the signed-in consultant.

    • ConsultantNumber
    • FirstName
    • LastName
    • PersonalBP
    • GroupBP
    • AvailableWalletBalance
    • ExpiringWalletAmount
    • DiscountRate
    • CareerTitle
    • IsActive
    • IsSponsor
    • IsRecruit
    • Sponsor
    • SponsorName
    • InactivePeriods
    • Status
    • Activity
    • Email
    • MobilePhone
    • walletExpirationDate
    GET /v1/oriflame/downline?customerId=9100021 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "consultants": [{
        "ConsultantNumber": 5520199,
        "FirstName": "Meera",
        "LastName": "Nair",
        "PersonalBP": 1240.0,
        "GroupBP": 8810.5,
        "AvailableWalletBalance": 210.4,
        "ExpiringWalletAmount": 40.0,
        "DiscountRate": 24,
        "CareerTitle": "Director",
        "IsActive": true,
        "IsSponsor": true,
        "IsRecruit": false,
        "Sponsor": 4410288,
        "SponsorName": "Anita Rao",
        "InactivePeriods": 0,
        "Status": "Active"
      }]
    }
  • Wallet available balance

    GET /v1/oriflame/wallet openfinance

    Returns AvailableBalance plus Expirations rows with ExpiringAmount and ExpiryDate.

    Auth: Bearer access_token. Query customerId.

    • AvailableBalance
    • Expirations
    • ExpiringAmount
    • ExpiryDate
    • PeriodId
    GET /v1/oriflame/wallet?customerId=9100021 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "AvailableBalance": 210.4,
      "Expirations": [{
        "ExpiringAmount": 40.0,
        "ExpiryDate": "2026-11-30",
        "PeriodId": 202611
      }]
    }
  • Wallet transaction history

    GET /v1/oriflame/wallet/tx openfinance

    Pages wallet history rows with transactionAmount, discountType and transactionType.

    Auth: Bearer access_token. Query customerId plus optional transactionType filter (Received, Used, Pending, Expired, Refund).

    • totalCount
    • collection
    • customerId
    • discountType
    • transactionType
    • transactionAmount
    • orderId
    • localTransactionDate
    • periodId
    • sharingFromFirstName
    GET /v1/oriflame/wallet/tx?customerId=9100021&transactionType=Received HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "totalCount": 2,
      "collection": [{
        "customerId": 9100021,
        "discountType": "OriflameWallet",
        "transactionType": "Received",
        "transactionAmount": 85.5,
        "orderId": 778120,
        "localTransactionDate": "2026-09-18",
        "periodId": 202609,
        "sharingFromFirstName": "Meera"
      }]
    }
  • My-benefits summary for a period

    GET /v1/oriflame/benefits openfinance

    Returns the period's my-benefits card: oriflameWallet, bankTransferAmount, totalBenefits and bonusItems.

    Auth: Bearer access_token. Query periodId of the catalogue period.

    • firstName
    • lastName
    • bankTransferAmount
    • currencyIsoCode
    • bankTransferState
    • totalBenefits
    • bonusesAndCashAwards
    • oriflameWallet
    • immediateDiscounts
    • documentId
    • bonusTypeDescription
    • amount
    • paymentChannel
    • periodId
    GET /v1/oriflame/benefits?periodId=202610 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "firstName": "Anita",
      "lastName": "Rao",
      "bankTransferAmount": 1540.0,
      "currencyIsoCode": "INR",
      "bankTransferState": "Paid",
      "totalBenefits": 2100.0,
      "bonusesAndCashAwards": 320.0,
      "oriflameWallet": 210.4,
      "immediateDiscounts": 90.0,
      "commissionSheet": {"documentId": "cs-202610"},
      "bonusItems": [{
        "bonusTypeDescription": "Performance discount",
        "amount": 180.0,
        "paymentChannel": "BankTransfer"
      }]
    }
  • Success-plan earnings

    GET /v1/oriflame/earnings openfinance

    Returns ImmediateProfit, PerformanceDiscount and TotalEarnings for the success-plan period.

    Auth: Bearer access_token. Query customerId.

    • ImmediateProfit
    • PerformanceDiscount
    • TotalEarnings
    GET /v1/oriflame/earnings?customerId=9100021 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "ImmediateProfit": 640.0,
      "PerformanceDiscount": 180.0,
      "TotalEarnings": 2100.0
    }
  • Manager Summit qualification

    GET /v1/oriflame/summit opendata

    Returns Manager Summit qualification: managerSummitStatus, qualifiedInPeriods and targetDiscountRate.

    Auth: Bearer access_token.

    • managerSummitStatus
    • managerSummitVersion
    • qualifiedInPeriods
    • qualifiedOfPeriods
    • successfulQualificationPeriodsCount
    • targetDiscountRate
    • periodId
    • startDate
    • endDate
    • isQualified
    • youtubeVideoId
    GET /v1/oriflame/summit HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "firstName": "Anita",
      "lastName": "Rao",
      "managerSummitStatus": "OnTrack",
      "managerSummitVersion": "2026",
      "qualifiedInPeriods": 2,
      "qualifiedOfPeriods": 3,
      "successfulQualificationPeriodsCount": 2,
      "targetDiscountRate": 30,
      "cutOffPeriods": [{
        "periodId": 202610,
        "startDate": "2026-10-01",
        "endDate": "2026-10-31",
        "isQualified": true
      }]
    }
  • Program Plus sales booster

    GET /v1/oriflame/program-plus opendata

    Returns Program Plus sales-booster rows: personalBp, firstLineMemberBp, targetBp and bonusAmount.

    Auth: Bearer access_token.

    • personalBp
    • firstLineMemberBp
    • targetBp
    • actualBp
    • bonusAmount
    • personalBvRateReward
    • oneTimeBonusAmount
    • rollingPeriodsRate
    • periodEarning
    • bpConditionsFulfilled
    • maxBpFromFirstLineMembers
    GET /v1/oriflame/program-plus HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "personalBp": 1240.0,
      "firstLineMemberBp": 5100.0,
      "targetBp": 8000.0,
      "actualBp": 6340.0,
      "bonusAmount": 250.0,
      "personalBvRateReward": 3.0,
      "oneTimeBonusAmount": 100.0,
      "rollingPeriodsRate": 2,
      "periodEarning": 180.0,
      "bpConditionsFulfilled": true
    }
  • E-shop account card

    GET /v1/oriflame/account osint

    Returns the e-shop account card: consultantId, customerId and loginStatus.

    Auth: Bearer access_token. Query loginString of the consultant.

    • consultantId
    • customerId
    • loginStatus
    GET /v1/oriflame/account?loginString=4410288 HTTP/1.1
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9
    Accept: application/json
    {
      "consultantId": 4410288,
      "customerId": 9100021,
      "loginStatus": "Active"
    }

Data categories

  • consultant profile
  • downline BP
  • wallet balance
  • wallet transactions
  • my benefits
  • earnings
  • manager summit
  • program plus
  • markets
  • auth-sessions

Where teams use this data

  • Downline BP overlay for a field bot

    A helper polls GET /v1/oriflame/downline (PersonalBP, GroupBP, AvailableWalletBalance, DiscountRate) so a sponsor bot can flag inactive InactivePeriods without opening the app.

  • Wallet and benefit payout board

    A payout job joins GET /v1/oriflame/wallet (AvailableBalance, ExpiringAmount) with GET /v1/oriflame/wallet/tx (transactionAmount, discountType) and GET /v1/oriflame/benefits (oriflameWallet, bankTransferAmount, bankTransferState).

  • Summit and Program Plus tracker

    A qualification dashboard joins GET /v1/oriflame/summit (managerSummitStatus, qualifiedInPeriods, targetDiscountRate) with GET /v1/oriflame/program-plus (personalBp, firstLineMemberBp, targetBp, bonusAmount).

  • Consultant card plus earnings archive

    A CRM archive joins GET /v1/oriflame/me (consultantNumber, careerTitle, sponsorNumber) with GET /v1/oriflame/earnings (ImmediateProfit, PerformanceDiscount, TotalEarnings).

Frequently asked questions

How does Oriflame Business authenticate API calls?

GET /v1/oriflame/markets lists tenant, code and displayName. POST /v1/oriflame/session exchanges that market plus the identity-server login for access_token, token_type, expires_in, loginToken and userEnabled. GET /v1/oriflame/status returns loginStatus. Later calls send Authorization Bearer access_token.

Which endpoints expose downline BP and wallet?

GET /v1/oriflame/downline returns PersonalBP, GroupBP, AvailableWalletBalance and DiscountRate. GET /v1/oriflame/wallet returns AvailableBalance and ExpiringAmount. GET /v1/oriflame/wallet/tx returns transactionAmount, discountType and transactionType.

What consultant-profile fields are returned?

GET /v1/oriflame/me returns consultantNumber, customerId, firstName, lastName, displayName, careerTitle, sponsorNumber, sponsorName, customerTypeId and preferredLanguage. GET /v1/oriflame/account returns consultantId, customerId and loginStatus.

Does the API cover benefits, earnings, summit and Program Plus?

Yes. GET /v1/oriflame/benefits returns oriflameWallet, bankTransferAmount and totalBenefits. GET /v1/oriflame/earnings returns ImmediateProfit, PerformanceDiscount and TotalEarnings. GET /v1/oriflame/summit returns managerSummitStatus and qualifiedInPeriods. GET /v1/oriflame/program-plus returns personalBp, firstLineMemberBp and targetBp.

Apps similar to Oriflame Business

  • udaan: B2B for Retailers — udaan is a Bengaluru B2B wholesale app for kirana buyers; Oriflame Business is a Schaffhausen consultant back-office for personal-group BP and wallet, not a wholesale cart.
  • IndiaMART - B2B Marketplace — IndiaMART is an enquiry-based Indian B2B marketplace; Oriflame Business is the brand's own consultant client for downline, benefits and catalogue periods.
  • MyWalmart — MyWalmart is Walmart's associate app for shifts and pay; Oriflame Business is the independent-consultant equivalent for BP, wallet and My Benefits.
  • Meta Business Suite — Meta Business Suite manages Pages and ads; Oriflame Business instead centres on personal-group lists, wallet history and period benefits.
  • Vyapar Invoice GST Billing App — Vyapar is an India GST invoicing client for shopkeepers; Oriflame Business is a network-selling consultant app with DiscountRate and GroupBP rather than GST invoices.
  • Pulse for Booking.com Partners — Pulse is Booking.com's property-partner app for reservations; Oriflame Business is the cosmetics-consultant partner app for downline and wallet.
  • Avon — Avon is another beauty direct-selling brand whose representatives track orders and downline; Oriflame Business is Oriflame Cosmetics AG's own Schaffhausen-run consultant client.
  • Natura — Natura is a Latin-American beauty network-selling brand; Oriflame Business covers the same consultant loop (BP, wallet, period benefits) for Oriflame markets including Mexico and Spain.

Topics

  • oriflame business api
  • consultant data api
  • PersonalBP downline
  • oriflameWallet
  • GroupBP
  • schaffhausen consultant api
  • consultantNumber
  • business volume 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