Pluxee Fintech card and balance API
Pluxee Fintech is the Mexico consumer app from Pluxee International (the 2024 rebrand of Sodexo Benefits & Rewards) for workers who spend employer-issued benefit cards and the two Pluxee México FinTech IFPE plastics. After email-and-password login — or Pluxee Connect single sign-on — the home carousel shows every product the holder registered: Flexible One and Flexible Bonus (electronic gift wallets, productCode PP), Corporativa / Business Pass travel cards (productCode BP), plus Tienda, Restaurante, Movilidad and Regalo vales that the store listing still names even as a companion Pluxee México app now owns those four. Card slides print MXN saldo as of a date, movements (extrato) filter by merchant or amount, and product-detail actions cover PIN change, dynamic CVV for e-commerce, block/unblock, add-card, RFC/CURP KYC via Incode/Mati, and an affiliated-merchant map filtered by Mexican estado and delegación. The IFPE legal copy is issued by Pluxee México FinTech, S.A. de C.V., Institución de Fondos de Pago Electrónico, supervised by CNBV, Banxico and SHCP, and names Premium Pass One, Premium Pass Bonus, Business Pass Daily and Business Pass Premiere as the regulated products. Published for Mexico with a 4.55 rating across 249,744 Google Play ratings and 1,000,000+ installs, it sits next to Edenred Ticket, Sí Vale and the newer Pluxee México consumer app for the same employer-benefit wallets.
MXN balance rows keyed by PAN product and stamped with createdAt sit next to movement lines that normalise Amount / Merchant / Date into amount, merchant and date, while the identity side keeps Mexican rfc (mapped from nid) and curp. Wallet membership is type plus productCode PP or BP and estatus 1=Activa; nearby comercios arrive as title, address, distance and productList.
Payroll reconcilers, travel-expense tools and city-guide locators consume those fields — nightly saldo vs load files, Business Pass spends attached to an employee RFC, merchant pins around Reforma. openData Studio turns the same fields 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.
Authenticate cardholder
POST
/v1/benefit-cards/sign-inopendataExchanges the cardholder's email and password for the Bearer accessToken that the app keeps for the session and attaches to every later call.
Auth: None. Email plus password (countryId selects the Mexico market) mint an accessToken; later calls send Authorization: Bearer <accessToken>.
- nid
- username
- password
- documentType
- countryId
- strategy
- deviceInfo
- accessToken
- data.created_at
POST /v1/benefit-cards/sign-in HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "nid": null, "username": null, "password": "********", "documentType": null, "countryId": 9, "strategy": "remote", "deviceInfo": { "platform": "android", "appVersion": "2.32.54" } }{ "accessToken": "<accessToken>", "data": { "email": "[email protected]", "created_at": "2024-03-12T11:04:00Z", "countryId": 9 } }Refresh session token
POST
/v1/benefit-cards/sign-in/refreshopendataRotates the session: the returned accessToken replaces the stored one so the cardholder stays signed in.
Auth: Bearer accessToken from the current session, plus countryId in the body.
- countryId
- token
- accessToken
- expiresIn
POST /v1/benefit-cards/sign-in/refresh HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "token": "<accessToken>" }{ "accessToken": "<refreshedAccessToken>", "expiresIn": 3600 }List wallet products
POST
/v1/wallet-products/listopenfinanceReturns every registered plastic and e-wallet — PAN in product, type (Flexible One, Corporativa, Tienda…), productCode PP/BP, estatus 1=Activa — for the home carousel and product-detail tabs.
Auth: Bearer accessToken from the sign-in call. Body carries countryId; the wallet variant also sends the signed-in email.
- countryId
- product
- type
- productCode
- estatus
- hidden
- isPIN
- isCVVD
- isOnOff
- isTheftLoss
POST /v1/wallet-products/list HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "email": "[email protected]" }{ "data": [ { "product": "516292******4419", "type": "Flexible One", "productCode": "PP", "estatus": 1, "hidden": false, "isPIN": true, "isCVVD": true, "isOnOff": true, "isTheftLoss": true }, { "product": "516292******8821", "type": "Corporativa", "productCode": "BP", "estatus": 1, "hidden": false, "isPIN": true, "isCVVD": false, "isOnOff": true, "isTheftLoss": true } ] }Card balances
POST
/v1/wallets/balance-lookupopenbankingReads the MXN saldo per PAN. The home card slide prints 'Saldo al {createdAt}' and 'MXN {balance}', and the same row is merged onto the product detail.
Auth: Bearer accessToken. Body keys products[] (PAN strings) plus email and countryId.
- products
- countryId
- updates
- nid
- product
- balance
- createdAt
POST /v1/wallets/balance-lookup HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "products": [ "516292******4419", "516292******8821" ], "email": "[email protected]", "countryId": 9, "updates": true }[ { "product": "516292******4419", "balance": 1842.5, "createdAt": "2026-10-21T15:04:00Z" }, { "product": "516292******8821", "balance": 9200.0, "createdAt": "2026-10-21T15:04:00Z" } ]Card movements
GET
/v1/wallets/{walletRef}/transactionsopenbankingPages the extrato for one PAN. Pascal-case Amount/Date/Merchant/Type/Status come back alongside the lower-case amount/date/merchant/type/status used by the movements list (green credit / red debit in MXN).
Auth: Bearer accessToken. Query requires email and countryId.
- cardNumber
- countryId
- movements
- Amount
- amount
- Date
- date
- Reference
- reference
- Merchant
- merchant
- Type
- type
- Status
- status
GET /v1/wallets/516292******4419/transactions?email=ana.garcia%40empresa.mx&countryId=9 HTTP/1.1 Authorization: Bearer <accessToken>{ "movements": [ { "Amount": -186.5, "Date": "2026-10-18", "Reference": "TXN-4419-8812", "Merchant": "Starbucks Reforma", "Type": "PURCHASE", "Status": "APPROVED" }, { "amount": 2500.0, "date": "2026-10-01", "reference": "LOAD-OCT", "merchant": "Pluxee load", "type": "CREDIT", "status": "APPROVED" } ] }Movements grouped by merchant
GET
/v1/wallets/{walletRef}/transactions/by-merchantopendataSame movement rows rolled up per merchant for the movements-filter comercio view.
Auth: Bearer accessToken. Same email + countryId query as the transaction list.
- cardNumber
- countryId
- movements
- merchant
- amount
- date
- reference
- type
- status
GET /v1/wallets/516292******4419/transactions/by-merchant?email=ana.garcia%40empresa.mx&countryId=9 HTTP/1.1 Authorization: Bearer <accessToken>{ "movements": [ { "merchant": "Starbucks Reforma", "amount": -559.5, "date": "2026-10-18", "reference": "AGG-STARBUCKS", "type": "PURCHASE", "status": "APPROVED" } ] }Cardholder profile
POST
/v1/holders/profileosintLoads the signed-in holder for the profile and KYC screens. In Mexico the national-id field nid is exposed as rfc (13 characters), and onboarding also collects the CURP.
Auth: Bearer accessToken. Body requires email and countryId.
- countryId
- rfc
- curp
- cellphone
- mobile
- name
POST /v1/holders/profile HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "email": "[email protected]", "countryId": 9 }{ "email": "[email protected]", "rfc": "GARA850101XXX", "curp": "GARA850101MDFRRN09", "cellphone": "5512345678", "mobile": "5512345678", "name": "Ana García", "countryId": 9 }Check RFC registration
POST
/v1/holders/lookuposintLooks up whether an RFC is already on file during the first step of document registration, then reveals an obfuscated mobile for the second step.
Auth: None (signup). Body is nid (RFC with homoclave) plus countryId.
- nid
- countryId
- exists
- mobile
- obfuscatedMobile
POST /v1/holders/lookup HTTP/1.1 Content-Type: application/json { "nid": "GARA850101XXX", "countryId": 9 }{ "exists": true, "email": "[email protected]", "mobile": "5512345678", "obfuscatedMobile": "******5678" }Affiliated merchants
GET
/v1/acceptance/locationsopendataReturns comercios asociados near the holder — title, address, phone, km distance and accepted product types — for the Lista/Mapa merchant screen filtered by estado and delegación.
Auth: Bearer accessToken. Query includes countryId plus lat/lon from GPS or title from the search box.
- countryId
- lat
- lon
- title
- address
- phone
- distance
- productList
GET /v1/acceptance/locations?countryId=9&lat=19.435312&lon=-99.134402 HTTP/1.1 Authorization: Bearer <accessToken>[ { "title": "Starbucks Reforma", "address": "Av. Paseo de la Reforma 222, Juárez, CDMX", "phone": "5551400000", "distance": 0.4, "lat": 19.4332, "lon": -99.1605, "productList": [ "Flexible One", "Tienda", "Restaurante" ] } ]Reveal card CVV
POST
/v1/cards/static-codeopenfinanceReturns the static CVV for a registered card (product.isCVVD) so the CVV screen can show it for online checkout.
Auth: Bearer accessToken. Body carries countryId plus the PAN in product.
- countryId
- product
- cvv
- status
POST /v1/cards/static-code HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "product": "516292******4419", "email": "[email protected]" }{ "cvv": "123", "product": "516292******4419", "status": "ACTIVE" }Generate dynamic CVV
POST
/v1/cards/dynamic-codeopenfinanceMints a short-lived CVV for e-commerce (store listing: 'Generar CVV dinámico para compras en línea'); the dynamic-CVV form collects the request.
Auth: Bearer accessToken. Body carries countryId plus the PAN.
- countryId
- product
- cvv
- expiresAt
POST /v1/cards/dynamic-code HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "product": "516292******4419", "email": "[email protected]" }{ "cvv": "847", "expiresAt": "2026-10-21T15:10:00Z", "product": "516292******4419" }Change card PIN
POST
/v1/cards/pin-updateopenfinanceSets a new PIN on a PIN-enabled card (product.isPIN) from the PIN request and confirmation flow.
Auth: Bearer accessToken. The signed-in email is attached automatically; body also has countryId and the new PIN.
- countryId
- product
- pin
- status
POST /v1/cards/pin-update HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "email": "[email protected]", "countryId": 9, "product": "516292******4419", "pin": "1478" }{ "status": "OK", "product": "516292******4419" }Disable (block) card
POST
/v1/cards/lockopenfinanceBlocks a plastic after loss or theft (product.isTheftLoss / isOnOff). Product-detail then shows estatus != 1 as Inactiva.
Auth: Bearer accessToken. Body carries countryId, the PAN and a reason code from the block-reason list.
- countryId
- product
- reasonId
- reason
- estatus
- status
POST /v1/cards/lock HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "product": "516292******4419", "email": "[email protected]", "reasonId": 2, "reason": "theft" }{ "product": "516292******4419", "estatus": 2, "status": "BLOCKED" }Online payment sale
POST
/v1/checkout/chargesopenbankingCharges a Flexible/Corporativa balance at an affiliated merchant after PIN validation; companion calls cover payment processing, PIN validation, authorization-token issue and transaction notification.
Auth: Bearer accessToken. Client retries transient failures up to 5 times.
- countryId
- product
- amount
- currency
- merchantCode
- pin
- status
- authorizationCode
- reference
POST /v1/checkout/charges HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "product": "516292******4419", "email": "[email protected]", "amount": 186.5, "currency": "MXN", "merchantCode": "SX-88219", "pin": "1478" }{ "status": "APPROVED", "authorizationCode": "884120", "amount": 186.5, "currency": "MXN", "reference": "PAY-4419-1102" }CIAM user products
POST
/v1/identity/linked-walletsopenfinanceLists the products bound to a Pluxee Connect (CIAM) identity, requested with the standard OpenID scopes (openid, email, profile, phone) plus a consumer scope.
Auth: Bearer accessToken from the sign-in call, or a Pluxee Connect single sign-on token. countryId in the body.
- countryId
- products
- product
- type
- productCode
- estatus
POST /v1/identity/linked-wallets HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "countryId": 9, "email": "[email protected]" }{ "products": [ { "product": "516292******4419", "type": "Flexible One", "productCode": "PP", "estatus": 1 } ] }
Data categories
- balances
- transactions
- cards
- identity
- merchants
- payments
Where teams use this data
Employer benefit-balance reconciliation
Payroll and HRIS bots pull the card balance lookup nightly, keyed by the products[] PAN list and email, then match MXN balance plus createdAt against the load file for Flexible One, Flexible Bonus and Corporativa wallets.
Expense-report matching on Corporativa
Travel-expense tools page the per-card transaction list (amount, merchant, date, reference, type, status) and its comercio roll-up to attach Business Pass spends to an employee RFC.
Acceptance-network locator
City guides query the acceptance-location search with CDMX lat/lon (19.435312, -99.134402) and render title, address, phone, distance and productList so holders of Tienda, Restaurante or Flexible cards can find a nearby comercio asociado.
IFPE KYC refresh
Compliance stacks read the holder profile (rfc, curp, cellphone, email) and the registration lookup on nid so Pluxee México FinTech IFPE onboarding stays aligned with the Incode/Mati CURP capture.
Frequently asked questions
How does Pluxee Fintech authenticate cardholders?
POST /v1/benefit-cards/sign-in accepts email, password, countryId and strategy remote and returns an accessToken, which later calls send as an Authorization: Bearer header. Cardholders in Mexico can also sign in through Pluxee Connect single sign-on, requesting the openid, email, profile and phone scopes plus a consumer scope. POST /v1/benefit-cards/sign-in/refresh rotates the session token.
Which balance and movement fields are on the home slides?
POST /v1/wallets/balance-lookup is keyed by products[] (PAN strings) plus email and countryId and returns per-card balance and createdAt — the card slide prints 'Saldo al {date}' and 'MXN {balance}'. GET /v1/wallets/{walletRef}/transactions returns movements with Amount, Date, Reference, Merchant, Type and Status, alongside the lower-case amount, date, reference, merchant, type and status used by the extrato list.
What identity documents does Mexico KYC collect?
The 13-character RFC is held in nid and surfaced as rfc. Onboarding also captures curp (split 10+remainder for Mexican-born holders) together with país de nacimiento, entidad federativa, nacionalidad, ocupación and politically-exposed-person flags before an Incode/Mati identity check. POST /v1/holders/profile and POST /v1/holders/lookup expose those fields after login or during signup.
How do I find affiliated merchants?
GET /v1/acceptance/locations takes countryId, GPS lat/lon (falling back to Mexico City, 19.435312, -99.134402) or a title search and returns title, address, phone, distance and productList. The merchant screen splits Lista and Mapa tabs and filters by estado and delegación.
Apps similar to Pluxee Fintech
- Edenred Wallet — Edenred Wallet is Edenred México's cardholder app for employer-issued vales de despensa, Ticket Restaurante and Ticket Car, used to check saldo, the last 90 days of movements, nearby affiliated merchants and a dynamic CVV for online spend.
- Up Sí Vale — Up Sí Vale is the worker app for Up Sí Vale employer-benefit cards in Mexico, used to check real-time saldo and movements — including additional cards — and Sí Vale merchant promotions.
- Pluxee México — Pluxee México is Pluxee's companion consumer app for the Tienda, Restaurante, Movilidad and Regalo vales, covering live saldo, nearby merchants, promotions and a dynamic CVV; Fintech plastics are registered in a separate PluxeeMx listing.
- Toka — Toka issues Mexican electronic despensa wallets and fuel cards, and cardholders open the Toka Super App for those employer-loaded benefits plus mobility and connectivity extras.
- Efectivale Móvil — Efectivale Móvil is the cardholder app for Efectivale's Mexican fuel, despensa, food and travel-and-expenses cards, used to check saldo, recent movements and fuel stations.
- Pluxee Brasil — Pluxee Brasil is the Brazilian cardholder app for Pluxee PAT meal and food vouchers plus culture, gift and fuel cards, with saldo, extrato, merchant search and PIN or block self-service.
Topics
- Pluxee Fintech API
- Pluxee Mexico card balance
- Flexible One productCode PP
- Corporativa Business Pass BP
- RFC CURP KYC Mexico
- Pluxee Mexico API
- Pluxee comercios asociados
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