Pluxee India SuperCard Data API
Pluxee India: prev Sodexo-Zeta is the employee-benefits wallet from Pluxee India Pvt Ltd and the successor to the Zeta SuperCard app. Employees sign in with their mobile number to manage employer-issued meal, gift, communication, rewards, cash and expense-reimbursement purses. The wallet brings together SuperCard balance checks, RuPay card details, PIN and CVV views, card blocking and unblocking, BharatQR payments, tap-and-pay at trusted merchants, and Optima multi-benefit contracts. Meal-card holders can spend at accredited canteens and grocery outlets, hide unused payment instruments and open RBL-linked account details from the same session. Published for India, it has a 3.75 Google Play rating from 222,366 ratings and serves the employer meal-card market alongside Edenred Ticket Restaurant India.
Meal-purse balances and SuperCard ledger postings form a linked benefits record: cardProgramID, productType, ledgerId and cardState distinguish each purse, while amount and currency express its remaining value. Physical-card records add maskedPan, isPhysical, crn and contractId. Statement entries carry amountInPaise, recordType, previousBalance, newBalance and transactionID, with counterparty details under otherLegInfo.
Payroll and expense teams can reconcile benefit loads and canteen receipts against those balance changes. Card-operations tools can associate tokenId, tokenStatus and merchantName with card records, while benefits administrators connect zetaUserID, crn, secondaryCRN and contractList with profile checks such as kycDone and corpID. Payment reconciliation adds transactionState, banker.status and paymentReceipt for capture outcomes. With authorized access to the underlying records, openData Studio turns this benefits data into callable open data for payroll reconciliation, card synchronization and contract onboarding.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Create Proteus session
POST
/v1/access/sessionsosintOpens a beneficiary session after SSO and returns authToken plus validTill for every later wallet, ledger and SuperCard call.
Auth: Unauthenticated session bootstrap after mobile SSO. The body carries authData, clientSessionId and uaInfo; the response supplies authToken and validTill for later authenticated calls.
- authData
- authToken
- clientSessionId
- requestId
- version
- uaInfo
- gatewayInfo
- id
- validTill
POST /v1/access/sessions HTTP/1.1 Content-Type: application/json { "authData": "otp-verified-mobile", "authToken": "", "clientSessionId": "android-auth-1718600000000", "requestId": "android-auth-1718600000000", "version": 1, "uaInfo": { "osName": "Android", "appVersion": "9.5.5" }, "gatewayInfo": {} }{ "id": "sess_7f2a9c11", "authToken": "<session-token>", "validTill": 1718686400000 }Get user profile
GET
/v1/beneficiaries/profileosintReturns the signed-in beneficiary profile — userId, name, verified +91 phone, corpID and kycDone — for the account header and KYC gate.
Auth: Bearer session token in the Authorization header. The beneficiary is scoped by userJID / userId.
- userId
- firstName
- lastName
- dob
- gender
- emailList
- phoneNumber
- isVerified
- profilePicURL
- isPassphraseSet
- kycDone
- corpID
- shopId
- addresses
- bankAccounts
GET /v1/beneficiaries/profile HTTP/1.1 Authorization: Bearer <session-token> X-User-JID: user_88100214{ "userId": "user_88100214", "name": { "firstName": "Anita", "lastName": "Sharma" }, "dob": "1992-04-18", "gender": "F", "emailList": [{"email": "<email>"}], "phoneNumbers": [{"phoneNumber": "<verified-mobile>", "isVerified": true}], "profilePicURL": "<profile-image-url>", "isPassphraseSet": true, "kycDone": true, "attrs": {"corpID": "corp_pluxee_1102"}, "shopId": "", "addresses": [], "bankAccounts": [], "businessIDs": [], "trustedContacts": [], "userDocs": [] }Get SuperCard wallet
POST
/v1/benefits/wallet-viewopenfinanceLoads the IFI-scoped SuperCard wallet: meal/gift/cash cardPrograms with amount and ledgerId, plus superCardList plastics (maskedPan, crn, productType MEAL).
Auth: Bearer session token in the Authorization header. The body identifies userID and cardCriteria, including includeZeroBalance and states.
- id
- primaryIFI
- availableIFIs
- cardProgramID
- cardID
- superCardID
- name
- productType
- programType
- ledgerId
- amount
- currency
- ifi
- cardState
- maskedPan
- isPhysical
- crn
- contractId
- includeZeroBalance
POST /v1/benefits/wallet-view HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "appID": "in.zeta.android", "userID": "user_88100214", "includeAllCards": true, "cardCriteria": { "*": { "includeZeroBalance": true, "states": ["ENABLED", "DISABLED"] } } }{ "wallet": { "id": 44018221, "primaryIFI": 151613, "availableIFIs": {"151613": "RBL"}, "cardPrograms": [ { "cardProgramID": "cp_meal_01", "cardID": "card_7f2a", "superCardID": "sc_9f21", "name": "Meal", "productType": "MEAL", "programType": "BENEFIT", "ledgerId": "ldg_88100214", "amount": 125000, "points": 0, "currency": "INR", "ifi": 151613, "isShareable": false, "cardState": "ENABLED", "lastUpdateTime": "2026-10-22T08:11:00Z", "value": {"currency": "INR", "amount": "125000"}, "attrs": {} } ], "superCardList": [ { "cardID": "sc_9f21", "maskedPan": "5085-****-****-4419", "isPhysical": true, "isAddOn": false, "state": "ENABLED", "productType": "MEAL", "ifi": 151613, "crn": "crn_4401", "contractId": "ct_optima_12", "cguid": "cguid_77a" } ], "cards": [], "addOnCards": {}, "tags": [] } }List payment instruments
POST
/v1/benefits/instrument-listopenfinanceReturns every visible payment instrument (SuperCard or SuperTag) with uniquingId, productType, state and crn for the home carousel and hide/show controls.
Auth: Bearer session token in the Authorization header. The body identifies the beneficiary and application context.
- paymentInstruments
- type
- uniquingId
- ifi
- productType
- state
- templateID
- crn
- associatedItems
- bottomSheetTitle
POST /v1/benefits/instrument-list HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "appID": "in.zeta.android", "userId": "user_88100214", "uaInfo": {"osName": "Android", "appVersion": "9.5.5"} }{ "paymentInstruments": [ { "type": "SuperCard", "uniquingId": "sc_9f21", "ifi": 151613, "productType": "MEAL", "state": "ENABLED", "templateID": "tpl_supercard", "crn": "crn_4401", "associatedItems": [], "attrs": {"bottomSheetTitle": "Meal SuperCard"} } ] }Get ledger transactions
POST
/v1/benefits/ledger-historyopenbankingPages CREDIT/DEBIT postings on one meal ledger — amountInPaise, previousBalance/newBalance, remarks and counterparty name — for the wallet statement.
Auth: Bearer session token in the Authorization header. The body identifies ledgerID and supplies pagination cursors.
- ledgerID
- postingID
- transactionID
- previousBalance
- newBalance
- timestamp
- amountInPaise
- recordType
- remarks
- otherLegInfo
- name
- imageURL
- profilePicURL
- before
- after
- count
- order
POST /v1/benefits/ledger-history HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "ledgerID": "ldg_88100214", "before": "", "after": "", "count": 20, "order": "DESC" }{ "transactions": [ { "ledgerID": "ldg_88100214", "postingID": "pst_9f21aa", "transactionID": "txn_77a4419", "previousBalance": 128500, "newBalance": 125000, "timestamp": 1729661460000, "amountInPaise": 3500, "recordType": "DEBIT", "remarks": "Canteen swipe", "otherLegInfo": { "merchant": { "name": "Cafe Coffee Day", "imageURL": "", "profilePicURL": "" } }, "attributes": {} } ] }Get SuperCard PAN payload
POST
/v1/cards/secure-detailsopenfinanceReturns encrypted SuperCard PAN/CVV/expiry blobs (cardData + iv) so the expand-card screen can show the RuPay plastic details.
Auth: Signed request with userID, timestamp and clientPubKey, together with a Bearer session token in the Authorization header.
- userID
- timestamp
- clientPubKey
- serverPubKey
- cardData
- iv
- cvv
- expiry
- validFrom
POST /v1/cards/secure-details HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "userID": 88100214, "timestamp": 1729661460000, "clientPubKey": "<client-public-key>" }{ "serverPubKey": "<server-public-key>", "data": [ { "cardData": "<encrypted-card-data>", "iv": "<initialization-vector>" } ] }Get tokens for card
GET
/v1/cards/merchant-tokensopenfinanceLists RuPay meal tokens on one SuperCard — tokenId, ENABLED/DISABLED/DELETED status and merchantName — for the meal-token manager.
Auth: Bearer session token in the Authorization header. The cardId query value identifies the SuperCard.
- tokens
- tokenId
- tokenStatus
- modifiedAt
- merchantName
GET /v1/cards/merchant-tokens?cardId=sc_9f21 HTTP/1.1 Authorization: Bearer <session-token>{ "tokens": [ { "tokenInfoView": { "tokenId": "tkn_rupay_4419", "tokenStatus": "ENABLED", "modifiedAt": "2026-09-12T11:04:00Z", "merchantInformation": { "merchantName": "Cafe Coffee Day" } } } ] }Get payment info
POST
/v1/payments/status-viewopenbankingReads one in-flight or captured SuperCard payment — state, banker.status and receipts — for the payment-status and BharatQR result screens.
Auth: Bearer session token in the Authorization header. The body carries userId and paymentInfoRequest.
- id
- state
- bConnectTxnId
- payee
- stateTransitions
- banker.status
- banker.failureReason
- authorizationReceipt
- paymentReceipt
POST /v1/payments/status-view HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "userId": "user_88100214", "paymentInfoRequest": { "id": 99211004 } }{ "id": 99211004, "state": "CAPTURED", "bConnectTxnId": "bconn_77a", "payee": {"name": "Cafe Coffee Day"}, "stateTransitions": {"AUTHORIZED": 1729661400000, "CAPTURED": 1729661460000}, "attributes": { "banker.status": "SUCCESS", "banker.failureReason": "" }, "authorizationReceipt": {}, "paymentReceipt": {} }Charge with authorization
POST
/v1/payments/authorized-captureopenbankingCaptures a BharatQR or vending SuperCard charge and returns transactionState for the pay-confirm screen.
Auth: Bearer session token in the Authorization header. The body carries the authorization object and merchantInfo.
- requestId
- authorizationType
- authorization
- captureInfo
- merchantInfo
- attrs
- transactionState
POST /v1/payments/authorized-capture HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "requestId": "req_bqr_4419", "authorizationType": "BharatQR", "authorization": {}, "captureInfo": {}, "merchantInfo": {}, "attrs": {"channel": "BQR"} }{ "transactionState": "CAPTURED" }Get Optima partner CRN
GET
/v1/benefits/contract-linksopenfinanceReads the Optima multi-benefit contract for the signed-in user — primary/secondary CRN, contractList and zetaUserID — that bind meal and gift purses to the SuperCard.
Auth: Bearer session token in the Authorization header. The request identifies the beneficiary whose Optima benefit contract is being read.
- crn
- secondaryCRN
- contractList
- zetaUserID
GET /v1/benefits/contract-links HTTP/1.1 Authorization: Bearer <session-token> X-User-Id: user_88100214{ "crn": "crn_4401", "secondaryCRN": "crn_4401b", "contractList": "ct_optima_12,ct_gift_08", "zetaUserID": 88100214 }
Data categories
- balances
- transactions
- cards
- tokens
- identity
- kyc
- merchants
Where teams use this data
Meal-purse payroll reconciliation
An HR or payroll bot pulls cardPrograms where productType is MEAL, reads amount/currency and cardState, and matches remaining paise to the employer load so finance sees unused meal value before the next cycle.
Canteen spend ledger
An expense desk pages getTransactions for each ledgerId and joins amountInPaise, recordType and otherLegInfo.name to canteen receipts, using previousBalance/newBalance as a running meal-purse check.
RuPay token and SuperCard sync
A card-ops integration lists paymentInstruments (type SuperCard, uniquingId, crn) then getTokensForCardId for tokenId/tokenStatus/merchantName so disabled tokens and blocked plastics stay in sync with the wallet carousel.
Optima contract onboarding
A benefits-admin tool reads zetaUserID, crn, secondaryCRN and contractList from the Optima partner call, then checks kycDone and corpID on the profile before attaching a new meal or gift purse.
Frequently asked questions
What meal-card data does this Pluxee India API example cover?
The illustrative wallet includes cardProgramID, productType, amount, currency, ledgerId and cardState for benefit purses, plus maskedPan, crn and isPhysical for SuperCards. Statement records add amountInPaise, recordType, previousBalance, newBalance and counterparty details under otherLegInfo.
How is access to the benefits wallet authenticated?
Mobile SSO is followed by a session bootstrap that supplies authToken and validTill. Later requests use a Bearer session token in the Authorization header. The encrypted card-details flow additionally uses a signed request with userID, timestamp and clientPubKey. The paths and examples here are illustrative, not official public Pluxee API documentation; profile, wallet and card records require authorized access.
Can the illustrated surface show transactions and payment outcomes?
Yes. Ledger history is paginated with before and after cursors and includes postingID, transactionID, amountInPaise, remarks and balance changes. A separate payment-status view adds state, banker.status, banker.failureReason and receipts. Authorized payment capture returns transactionState.
How do Optima contracts and RuPay tokens connect to meal cards?
Optima records associate zetaUserID with crn, secondaryCRN and contractList; card records also carry crn and contractId. Token records contain tokenId, tokenStatus, modifiedAt and merchantName, supporting card-and-token synchronization alongside benefit-contract onboarding.
Apps similar to Pluxee India: prev Sodexo-Zeta
- Zaggle — Zaggle is an Indian spend-and-benefits platform that issues Visa and RuPay prepaid cards for flexi benefits, including food allowances loaded on the Zaggle Save card for online and merchant spend.
- Happay FlexiBenefits — Happay FlexiBenefits is an Indian employee tax-benefit card with separate wallets for food, fuel, communication, rewards and reimbursements, loaded on the employer salary cycle.
- Advantage Club — Advantage Club offers the Advantage Meal Card as a tax-efficient meal card with flexible benefits for everyday expenses and lifestyle needs, used in the AdvantageClub.ai worker app.
- Empuls — Empuls from Xoxoday offers a Multi Benefits Card for tax-saving and flexible spending, plus lifestyle spending accounts and brand discounts on groceries, fuel and travel.
- Pluxee Brasil — Pluxee Brasil is Pluxee's Brazilian cardholder app for meal, food and other benefit cards, used to check balances and statements and look up the accepting merchant network.
- Edenred Ticket Restaurant — Edenred, formerly Accor Services, issues Ticket Restaurant meal vouchers as a workplace employee benefit and operates in 46 countries, including India through Accentiv (now Edenred India).
Topics
- pluxee india api
- sodexo zeta supercard
- meal voucher balance india
- rupay meal card ledger
- optima crn contract
- pluxee india data api
- employee meal benefits india
- illustrative benefits 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