Waylet. Pagos con el móvil icon

Waylet Data API: Solred cards, on-pump fuel and EV

Repsol · Payments

Waylet. Pagos con el móvil is Repsol's official Android app for paying at Spanish service stations from the phone: on-pump fuel, Solred professional and Repsol Más loyalty cards, PayPal, parking, Klin car-wash, RMVE electric charging, and Waylet Luz household electricity. After sign-in the home map shows nearby Repsol and partner sites, stored cards, cashback and challenges, and live pump or charger sessions. It serves drivers and fleet operators in Spain who want to skip the till at Repsol stations and collect Más rewards, and it sits against other Spanish fuel-and-mobility wallets rather than a general-purpose bank app.

On-pump tickets pair the total with the cashback flag chosen at the pump, the selected card's pan and brand, and a commerceId that pins the charge to one station, while licensePlate attaches it to a vehicle on Solred professional cards. Wallet rows expose allowBalanceRequest and cashbackCompatible beside fullPan and holder; station and points-of-interest cards carry customerCashback and distance next to per-grade fuel price rows; live RMVE sessions report chargeBox, connector and the occupationBlockPrice idle-fee block; posted rewards land in the ledger as amount rows linked by paymentId, still-clearing ones roll up under totalComingAmount, and household savings aggregate into savings by month and year. The signed-in profile holds vatCode, gigyaId and a structured address alongside a payment-PIN flag.

Fleet back-offices reconcile Solred cards by pan and professional flag against pump total and commerceId so company fills bill to the right cost centre; mobility overlays plot station fuel price rows and charger chargeType / bookingEnabled so drivers pick a pump or CCS bay before leaving the motorway; personal-finance tools book posted amount rewards and the still-clearing totalComingAmount next to bank transactions; and EV dashboards watch chargeBox and occupationBlockPrice to know when a van frees the bay. openData Studio turns that mobility ledger into callable open data.

Screenshots

  • Waylet. Pagos con el móvil screenshot 1
  • Waylet. Pagos con el móvil screenshot 2
  • Waylet. Pagos con el móvil screenshot 3
  • Waylet. Pagos con el móvil screenshot 4
  • Waylet. Pagos con el móvil screenshot 5
  • Waylet. Pagos con el móvil screenshot 6
  • Waylet. Pagos con el móvil screenshot 7
  • Waylet. Pagos con el móvil screenshot 8

API surface

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

  • List payment cards

    GET /v1/wallet/instruments openbanking

    Returns the signed-in wallet: bank, Solred, PayPal and travel instruments with pan, brand, allowBalanceRequest and cashbackCompatible flags used by the cards screen.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • alias
    • brand
    • created
    • expiryMonth
    • expiryYear
    • favorite
    • fullPan
    • holder
    • pan
    • type
    • active
    • activationUrl
    • cardIconUrl
    • valid
    • professional
    • licensePlate
    • customerId
    • cardId
    • allowBalanceRequest
    • cashbackCompatible
    • paypal
    • travel
    • solredMasLink
    GET /v1/wallet/instruments HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    [
      {
        "id": "ins_8f2a1c",
        "alias": "Solred Más",
        "brand": "SOLRED_MAS",
        "created": "2024-03-12T10:22:00.000Z",
        "expiryMonth": "12",
        "expiryYear": "27",
        "favorite": true,
        "fullPan": "547112******4412",
        "holder": "ANA LOPEZ",
        "pan": "4412",
        "type": "SOLRED",
        "active": true,
        "activationUrl": null,
        "cardIconUrl": "https://cdn.example.com/cards/solred-mas.png",
        "valid": true,
        "professional": false,
        "licensePlate": "1234ABC",
        "customerId": "cus-19ae",
        "cardId": "solred-4412",
        "allowBalanceRequest": true,
        "cashbackCompatible": true,
        "paypal": null,
        "travel": null,
        "solredMasLink": null
      }
    ]
  • Card detail

    GET /v1/wallet/instruments/{instrument_id} openbanking

    Loads one stored card by id for the card-detail sheet: pan, brand, professional flag and Solred Más link metadata.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • alias
    • brand
    • expiryMonth
    • expiryYear
    • favorite
    • fullPan
    • holder
    • pan
    • active
    • valid
    • professional
    • licensePlate
    • allowBalanceRequest
    • cashbackCompatible
    • internationalPaymentsActive
    • cardBenefitsUrl
    • cardManagementUrl
    GET /v1/wallet/instruments/ins_8f2a1c HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "ins_8f2a1c",
      "alias": "Solred Más",
      "brand": "SOLRED_MAS",
      "expiryMonth": "12",
      "expiryYear": "27",
      "favorite": true,
      "fullPan": "547112******4412",
      "holder": "ANA LOPEZ",
      "pan": "4412",
      "active": true,
      "valid": true,
      "professional": false,
      "licensePlate": "1234ABC",
      "allowBalanceRequest": true,
      "cashbackCompatible": true,
      "internationalPaymentsActive": false,
      "cardBenefitsUrl": "https://www.example.com/benefits/solred-mas",
      "cardManagementUrl": null
    }
  • Card wallet balance

    GET /v1/wallet/instruments/{instrument_id}/funds openbanking

    Hits the Solred and loop-card balance lookup used when a card's allowBalanceRequest flag is true; the cards UI gates the call on that flag.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • alias
    • brand
    • pan
    • allowBalanceRequest
    • cashbackCompatible
    • professional
    GET /v1/wallet/instruments/ins_8f2a1c/funds HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "ins_8f2a1c",
      "alias": "Solred Más",
      "brand": "SOLRED_MAS",
      "pan": "4412",
      "allowBalanceRequest": true,
      "cashbackCompatible": true,
      "professional": false
    }
  • Start on-pump payment

    POST /v1/pump-checkouts openbanking

    Opens an on-pump payment request at a station: source, paymentCardId and commerceId, returning status and the selected card until the driver confirms.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • qr
    • alert
    • paymentRequest
    • source
    • paymentCardId
    • loyaltyMethodId
    • cashback
    • coupons
    • professional
    • commerceId
    • total
    • paymentCard
    • loyaltyMethod
    • status
    • message
    • errorInfo
    • benefit
    POST /v1/pump-checkouts HTTP/1.1
    Content-Type: application/json
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    
    {
      "source": "ONPUMP",
      "paymentCardId": "ins_8f2a1c",
      "loyaltyMethodId": null,
      "cashback": 1,
      "coupons": [],
      "professional": false,
      "commerceId": "st_2841",
      "total": null
    }
    {
      "id": "chk_44c1",
      "qr": null,
      "alert": null,
      "paymentRequest": {
        "source": "ONPUMP",
        "paymentCardId": "ins_8f2a1c",
        "loyaltyMethodId": null,
        "cashback": 1,
        "professional": false,
        "commerceId": "st_2841",
        "total": "52.40"
      },
      "paymentCard": {
        "id": "ins_8f2a1c",
        "alias": "Solred Más",
        "brand": "SOLRED_MAS",
        "pan": "4412"
      },
      "loyaltyMethod": null,
      "status": "PENDING",
      "message": null,
      "errorInfo": null,
      "benefit": null
    }
  • Payment request by id

    GET /v1/checkouts/{checkout_id} openbanking

    Polls one payment request (on-pump, QR, parking, Klin or RMVE) for status, selected card and nested totals before confirm or cancel.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • qr
    • alert
    • paymentRequest
    • source
    • paymentCardId
    • cashback
    • commerceId
    • total
    • rmve
    • carwash
    • paymentCard
    • status
    • message
    • errorInfo
    GET /v1/checkouts/chk_44c1 HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "chk_44c1",
      "qr": null,
      "alert": null,
      "paymentRequest": {
        "source": "ONPUMP",
        "paymentCardId": "ins_8f2a1c",
        "cashback": 1,
        "commerceId": "st_2841",
        "total": "52.40",
        "rmve": null,
        "carwash": null
      },
      "paymentCard": {
        "id": "ins_8f2a1c",
        "alias": "Solred Más",
        "brand": "SOLRED_MAS",
        "pan": "4412"
      },
      "status": "CONFIRMED",
      "message": null,
      "errorInfo": null
    }
  • Customer profile

    GET /v1/account/holder osint

    Reads the signed-in user profile — name, vatCode, phone, address and gigyaId — that settings and fiscal screens render.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • email
    • illionId
    • name
    • surname
    • vatCode
    • vatCodeType
    • phone
    • birthDate
    • gender
    • hasPin
    • address
    • street
    • city
    • state
    • zip
    • country
    • countryCode
    • fiscal
    • referrerCode
    • professional
    • gigyaId
    • companyVatCode
    GET /v1/account/holder HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "cus-19ae",
      "email": "[email protected]",
      "illionId": "ill-8821",
      "name": "Ana",
      "surname": "Lopez",
      "vatCode": "12345678Z",
      "vatCodeType": "NIF",
      "phone": "+34600111222",
      "birthDate": "1990-04-18",
      "gender": "FEMALE",
      "hasPin": true,
      "address": {
        "street": "Calle de Alcala 42",
        "city": "Madrid",
        "state": "Madrid",
        "zip": "28014",
        "country": "Spain",
        "countryCode": "ES"
      },
      "fiscal": null,
      "referrerCode": "ANA-4K2",
      "professional": false,
      "gigyaId": "gigya-19ae",
      "companyVatCode": null
    }
  • Total savings report

    GET /v1/account/holder/savings-report openfinance

    Returns savings totals — savings for month and year plus savingsDistribution and paymentDistribution — behind the savings summary.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • savings
    • month
    • year
    • savingsDistribution
    • paymentDistribution
    GET /v1/account/holder/savings-report HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "savings": 18450,
      "month": 10,
      "year": 2026,
      "savingsDistribution": {},
      "paymentDistribution": {}
    }
  • Cashback transactions

    GET /v1/rewards/ledger openfinance

    Lists cashback movement rows — amount, paymentId, source and commerce — for the cashback ledger.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • paymentId
    • source
    • type
    • description
    • date
    • amount
    • commerce
    • title
    • text
    • caption
    GET /v1/rewards/ledger HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    [
      {
        "id": "cbx-9012",
        "paymentId": "pay-77ab",
        "source": "ONPUMP",
        "type": "CASHBACK",
        "description": "Repsol Alcala",
        "date": "2026-10-12T08:14:00.000Z",
        "amount": 124,
        "commerce": {
          "name": "Repsol Alcala"
        },
        "title": "Cashback",
        "text": "+1,24 €",
        "caption": "Posted"
      }
    ]
  • Pending cashback

    GET /v1/rewards/ledger/pending openfinance

    Returns cashback still clearing — totalComingAmount plus per-item coming dates — shown as upcoming cashback.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • totalComingAmount
    • totalComingMessage
    • items
    • title
    • text
    • caption
    • date
    • coming
    • amount
    GET /v1/rewards/ledger/pending HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "totalComingAmount": "3,80 €",
      "totalComingMessage": "Se abonara en 7 dias",
      "items": [
        {
          "title": "Repsol Alcala",
          "text": "+1,24 €",
          "caption": "Coming",
          "date": "2026-10-12T08:14:00.000Z",
          "coming": "2026-10-19T00:00:00.000Z",
          "amount": 124
        }
      ]
    }
  • Commerce detail

    GET /v1/sites/{site_id} opendata

    Loads one site (station, charger, car wash or parking) with address, customerCashback and nested electric-charging metadata.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • name
    • type
    • category
    • customerCashback
    • description
    • openingHours
    • isFavourite
    • distance
    • address
    • street
    • city
    • zip
    • countryCode
    • rmve
    • accessType
    • chargeType
    • bookingEnabled
    • maintenance
    • operatorType
    • parking
    • o2o
    GET /v1/sites/st_2841 HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "st_2841",
      "name": "Repsol Alcala",
      "type": "GAS_STATION",
      "category": "STATION",
      "customerCashback": 2.0,
      "description": "Estacion de servicio",
      "openingHours": "24h",
      "isFavourite": true,
      "distance": 340,
      "address": {
        "street": "Calle de Alcala 412",
        "city": "Madrid",
        "zip": "28027",
        "country": "Spain",
        "countryCode": "ES"
      },
      "rmve": {
        "accessType": "PUBLIC",
        "chargeType": "DC",
        "bookingEnabled": true,
        "maintenance": false,
        "operatorType": "REPSOL"
      },
      "parking": null,
      "o2o": null
    }
  • Station fuel prices

    GET /v1/fuel-grades/prices opendata

    Returns fuel grade rows — title, name and price — that station cards show for petrol and diesel.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • title
    • imageUrl
    • name
    • price
    GET /v1/fuel-grades/prices HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    [
      {
        "title": "Sin Plomo 95",
        "imageUrl": "https://cdn.example.com/fuels/sp95.png",
        "name": "SP95",
        "price": "1,459"
      },
      {
        "title": "Gasoleo A",
        "imageUrl": "https://cdn.example.com/fuels/goa.png",
        "name": "GOA",
        "price": "1,389"
      }
    ]
  • Nearby points of interest

    GET /v1/places/around opendata

    Lists place cards around the user — name, distance, customerCashback and address — that populate the home map.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language. An unauthenticated public variant of this listing also exists.

    • id
    • name
    • category
    • customerCashback
    • distance
    • isFavourite
    • address
    • street
    • city
    • zip
    • countryCode
    • location
    GET /v1/places/around?lat=40.4362&lng=-3.6581&radius=5000 HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    [
      {
        "id": "st_2841",
        "name": "Repsol Alcala",
        "category": "STATION",
        "customerCashback": 2.0,
        "distance": 340,
        "isFavourite": true,
        "address": {
          "street": "Calle de Alcala 412",
          "city": "Madrid",
          "zip": "28027",
          "countryCode": "ES"
        },
        "location": {
          "latitude": 40.4362,
          "longitude": -3.6581
        }
      }
    ]
  • Loyalty challenges

    GET /v1/rewards/campaigns opendata

    Returns challenge campaigns — conditionUnits vs achievedUnits, dates and status — for the loyalty challenges list.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • title
    • description
    • units
    • conditionUnits
    • achievedUnits
    • startDate
    • endDate
    • endDateLabel
    • status
    GET /v1/rewards/campaigns HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    [
      {
        "id": "ch-oct-fill",
        "title": "Tres repostajes",
        "description": "Reposta 3 veces este mes",
        "units": "L",
        "conditionUnits": 3.0,
        "achievedUnits": 1.0,
        "startDate": "2026-10-01",
        "endDate": "2026-10-31",
        "endDateLabel": "Hasta el 31 oct",
        "status": "ACTIVE"
      }
    ]
  • EV recharge session

    GET /v1/ev-sessions/{session_id} opendata

    Reads a live electric-vehicle charging session — chargeBox, connector, status and occupationBlockPrice — behind the charging screen.

    Auth: Session token sent as a Bearer token; every call also carries app-version, platform and device-context headers plus Accept-Language.

    • id
    • paymentId
    • commerceId
    • chargeBox
    • connector
    • status
    • cashbackPercentage
    • created
    • occupationBlockPrice
    • occupationBlockTime
    • occupationConcessionTime
    • curve
    GET /v1/ev-sessions/evs_55d0 HTTP/1.1
    Accept-Language: es-ES
    X-App-Version: 26.10.0
    X-Platform: android
    Authorization: Bearer <session-token>
    {
      "id": "evs_55d0",
      "paymentId": "pay-77ab",
      "commerceId": "st_2841",
      "chargeBox": "RP-ALCALA-02",
      "connector": "CCS2-1",
      "status": "CHARGING",
      "cashbackPercentage": "2",
      "created": "2026-10-12T09:01:00.000Z",
      "occupationBlockPrice": 20,
      "occupationBlockTime": 10,
      "occupationConcessionTime": 15,
      "curve": []
    }

Data categories

  • cards
  • payments
  • cashback
  • fuel prices
  • EV charging
  • loyalty
  • profile
  • savings

Where teams use this data

  • Solred fleet pump reconciliation

    A fleet back-office pulls card pans and professional flags, then matches on-pump PaymentRequest commerceId and totals to Solred invoices so company cars are billed to the right cost centre.

  • Fuel-price and charger map

    A mobility overlay plots nearby stations with Fuel price grades and ElectricStation chargeType / bookingEnabled so drivers pick a pump or CCS bay before they leave the motorway.

  • Cashback ledger in personal finance

    A money app books posted TransactionSimpleMovement amounts and still-clearing totalComingAmount so Repsol Más rewards show up beside bank transactions.

  • Live RMVE session monitor

    An EV dashboard watches chargeBox, connector and occupationBlockPrice on an active recharge so fleet dispatch knows when a van will free the bay.

Frequently asked questions

What payment instruments does Waylet store?

The wallet list returns bank, Solred, PayPal and travel instruments, each with pan, brand, professional and cashbackCompatible flags; the balance lookup only fires for cards whose allowBalanceRequest flag is true.

Can station fuel prices be read without starting a payment?

Yes. Fuel title, name and price are served as station catalog rows, and nearby points of interest include customerCashback before any on-pump request is opened.

Does the surface cover electric charging?

RMVE recharge sessions expose chargeBox, connector, status and the occupationBlockPrice idle-fee block, and payment requests carry matching rmve and carwash blocks beside the pump total.

How is the customer identified?

The profile carries email, Spanish vatCode, gigyaId, illionId and a structured address with countryCode, plus a payment PIN flag.

Apps similar to Waylet. Pagos con el móvil

  • Moeve — Moeve (formerly Cepsa) is the Moeve gow club app for collecting redeemable balance on fuel, shop and wash purchases at Moeve stations in Spain and on public EV charging.
  • miBP — miBP is bp Energía España's loyalty-club app for keeping miBP cards on the phone, accumulating miBP Savings and Points on BP fuels in Spain, and checking those balances.
  • Mundo Galp — Mundo Galp is Galp's Spain loyalty app for collecting points on fuel, shop and car-wash purchases at Galp stations and exchanging them for fuel discounts, Galp products and partner gift cards.
  • Ballenoil Easy Fuel — Ballenoil Easy Fuel lets drivers pay for fuel from the phone at Ballenoil stations in Spain, see nearby sites and prices, receive promotions, and assign fills to a company fleet.
  • Plenergy — Plenergy is the Spanish Plenergy station chain's app for locating nearby sites, checking live fuel prices and downloading invoices.
  • Mi Energía DISA — Mi Energía DISA is Grupo DISA's Spain app for DISA and Shell service stations plus electricity and bottled and natural gas, with in-app fuel discounts at those sites.
  • Electromaps — Electromaps, a Wallbox product, is used to find public EV charge points and start a charging session from the phone or an Electropass RFID tag.
  • ElParking — ElParking is a Spanish driver app for finding, comparing and pre-paying car-park spaces and on-street sessions, covering the same parking-pay use as Waylet's SER payments.

Topics

  • waylet api
  • repsol waylet
  • solred card
  • spain fuel payments
  • rmve charging
  • waylet cashback
  • on-pump payment

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