Pluxee Fintech icon

Pluxee Fintech card and balance API

Pluxee International · Payments 4.5 ★

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

  • Pluxee Fintech screenshot 1
  • Pluxee Fintech screenshot 2
  • Pluxee Fintech screenshot 3
  • Pluxee Fintech screenshot 4
  • Pluxee Fintech screenshot 5
  • Pluxee Fintech screenshot 6
  • Pluxee Fintech screenshot 7

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-in opendata

    Exchanges 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>.

    • email
    • 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/refresh opendata

    Rotates 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/list openfinance

    Returns 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
    • email
    • 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-lookup openbanking

    Reads 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
    • email
    • 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}/transactions openbanking

    Pages 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
    • email
    • 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-merchant opendata

    Same movement rows rolled up per merchant for the movements-filter comercio view.

    Auth: Bearer accessToken. Same email + countryId query as the transaction list.

    • cardNumber
    • email
    • 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/profile osint

    Loads 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.

    • email
    • 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/lookup osint

    Looks 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
    • email
    • 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/locations opendata

    Returns 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-code openfinance

    Returns 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
    • email
    • 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-code openfinance

    Mints 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
    • email
    • 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-update openfinance

    Sets 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.

    • email
    • 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/lock openfinance

    Blocks 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
    • email
    • 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/charges openbanking

    Charges 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
    • email
    • 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-wallets openfinance

    Lists 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
    • email
    • 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

Get a quote