Petrobras Premmia data API: points, Vale-Premmia and pump checkout
Petrobras Premmia is the official loyalty and in-station payments app of the Petrobras-branded retail network, published by Vibra Energia SA — Brazil's largest fuel distributor, the former Petrobras Distribuidora, which still operates the Petrobras, BR Mania convenience and Lubrax+ lubricant banners at the pump. Members sign in with CPF and an SMS one-time code, then pay for fuel in the app with Pix, a saved card or cash (the attendant confirms the hose), earn Premmia points on Petrobras-station and BR Mania / Lubrax+ spend, keep a Vale-Premmia fuel-credit balance, activate per-litre coupons, pick a favourite station for extra points, and optionally subscribe to Clube Premmia for club-only coupons. The home map finds nearby Petrobras posts, a catalog trades points for fuel vouchers, partner miles (Azul, LATAM, Smiles) and store rewards, and gift cards top up Saldo Premmia. It is a Brazil-only consumer app aimed at drivers who already fill up on the Petrobras flag, sitting next to rival station programmes such as Shell Box and Ipiranga's Km de Vantagens.
Premmia points pool into the same member ledger as the Vale-Premmia fuel-credit balance: one balance call returns accumulatedPoints and accumulatedFuelVoucher next to the in-app payment caps maximumAmountByCreditCard and maximumTotalAmount, so a fill-up, a fuel-credit debit and a points earn all settle on one account. The home header repeats the live pointBalance and savings totals a driver sees before the station map opens.
Pump checkout runs as a provider-mediated session: opening a checkout returns checkoutSessionId and merchantOrderId, payment confirmation hands back the Pix pixCode and QR payload plus the pump's supplyId, and a status poll reports the split of paymentValue, pointsAmount and voucherAmount. Coupons arrive with couponCode, discountPerLiter and a club flag; stations resolve with cnpj, fuel grades and pay-at-pump automation flags. Fleet reconcilers match station CNPJs against card statements, retail-media teams read which per-litre offers a driver holds, and retention tools message members whose points are about to lapse — openData Studio turns that ledger 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.
Sign in with CPF (createSession)
POST
/v1/members/sign-inosintStarts a member sign-in with CPF credentials and returns success plus whether the SMS one-time-code step is required next.
Auth: Unauthenticated CPF + SMS one-time-code flow. Verifying the code mints the session token sent as Authorization Bearer on later calls.
- cpf
- password
- success
- otpRequired
POST /v1/members/sign-in HTTP/1.1 Content-Type: application/json x-app-version: 7.15.0 { "cpf": "12345678901", "password": "••••" }{ "success": true, "otpRequired": true }Send SMS OTP (sendOtpCode)
POST
/v1/members/otp/sendosintSends the SMS (or email) one-time code after CPF sign-in and returns the masked email/phone plus the code's time-to-live.
Auth: Unauthenticated CPF + SMS one-time-code flow. Verifying the code mints the session token sent as Authorization Bearer on later calls.
- channel
- cpf
- maskedEmail
- maskedPhone
- message
- success
- expiresInSeconds
POST /v1/members/otp/send HTTP/1.1 Content-Type: application/json x-app-version: 7.15.0 { "channel": "SMS", "cpf": "12345678901" }{ "maskedEmail": "a***@example.com", "maskedPhone": "** ****-4321", "message": "Codigo enviado", "success": true, "expiresInSeconds": 120 }Validate SMS OTP (verifyOtpCode)
POST
/v1/members/otp/verifyosintConfirms the SMS one-time code and returns the session token plus a valid flag; the token authenticates later calls as Authorization Bearer.
Auth: Unauthenticated CPF + SMS one-time-code flow. Verifying the code mints the session token sent as Authorization Bearer on later calls.
- channel
- cpf
- code
- sessionToken
- valid
POST /v1/members/otp/verify HTTP/1.1 Content-Type: application/json x-app-version: 7.15.0 { "channel": "SMS", "cpf": "12345678901", "code": "847291" }{ "sessionToken": "<session-token>", "valid": true }Register member (registerMember)
POST
/v1/members/registerosintCreates a member account from CPF, name, email and phone, and returns the session token, CRM contact id and the welcome-screen copy.
Auth: Unauthenticated CPF + SMS one-time-code flow. Verifying the code mints the session token sent as Authorization Bearer on later calls.
- cpf
- firstName
- lastName
- phoneNumber
- sessionToken
- contactId
- successScreen
- title
- description
- button
POST /v1/members/register HTTP/1.1 Content-Type: application/json x-app-version: 7.15.0 { "cpf": "12345678901", "email": "[email protected]", "firstName": "Ana", "lastName": "Silva", "phoneNumber": "11987654321" }{ "sessionToken": "<session-token>", "contactId": "ct-003-premmia", "successScreen": { "title": "Conta criada", "description": "Bem-vinda ao Premmia", "button": "Comecar" } }Member profile (getProfile)
POST
/v1/members/profileosintReturns the signed-in member profile: name, masked and raw CPF, email and phone, dateOfBirth, driverType, verifiedProfessionalDriver, CRM contactId, club subscription flags and favoriteGasStation.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- firstName
- lastName
- cpf
- rawCpf
- maskedEmail
- phone
- maskedPhone
- dateOfBirth
- driverType
- verifiedProfessionalDriver
- contactId
- isSubscriber
- subscriptionPhase
- favoriteGasStation
- address
POST /v1/members/profile HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "id": "usr-ana", "firstName": "Ana", "lastName": "Silva", "cpf": "***.456.789-**", "rawCpf": "12345678901", "maskedEmail": "a***@example.com", "email": "[email protected]", "phone": "11987654321", "maskedPhone": "** ****-4321", "dateOfBirth": "1992-04-18", "driverType": "PASSENGER", "verifiedProfessionalDriver": false, "contactId": "ct-003-premmia", "isSubscriber": true, "subscriptionPhase": "ACTIVE", "favoriteGasStation": { "id": "st-9821", "name": "Posto Petrobras Paulista", "cnpj": "33.000.167/0001-01" }, "address": { "state": "SP", "city": "Sao Paulo", "street": "Rua Augusta 100", "zipCode": "01304-000" } }Read user balance (getBalance)
POST
/v1/loyalty/balanceopenfinanceReads the member's accumulatedPoints and Vale-Premmia accumulatedFuelVoucher plus in-app payment caps (maximumAmountByCreditCard, maximumTotalAmount and the Pix preference warning).
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- accumulatedFuelVoucher
- accumulatedPoints
- paymentConfig
- maximumAmountByCreditCard
- warnToPayPreferencedByPix
- maximumTotalAmount
POST /v1/loyalty/balance HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "accumulatedFuelVoucher": 87.5, "accumulatedPoints": 12480, "paymentConfig": { "maximumAmountByCreditCard": 300.0, "warnToPayPreferencedByPix": true, "maximumTotalAmount": 500.0 } }Home header (getHomeHeader)
POST
/v1/home/summaryopenfinanceLoads the home-screen header: display name, avatar initials/image, pointBalance and savings total shown above the station map.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- displayName
- avatar
- imageUrl
- color
- initials
- pointBalance
- savings
POST /v1/home/summary HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "displayName": "Ana Silva", "avatar": { "imageUrl": "https://cdn.example/avatar.png", "color": "#00A859", "initials": "AS" }, "pointBalance": 12480, "savings": 192.4 }Coupon wallet (getCouponWallet)
POST
/v1/coupons/walletopendataReturns the coupon wallet split into available, unavailable and club-only buckets, each coupon carrying couponCode, discountPerLiter, a club flag, expiry and per-station rules.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- available
- unavailable
- clubCoupons
- quantityAvailable
- couponCode
- discountType
- discountPercent
- discountPerLiter
- isClubCoupon
- maxDiscountValue
- expirationDate
- partnerName
- rules
POST /v1/coupons/wallet HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "available": { "title": "Disponiveis", "list": [{ "id": "cpn-441", "title": "R$ 0,10/L gasolina", "couponCode": "GASOL10", "discountType": "PER_LITER", "discountPercent": 0, "isClubCoupon": false, "status": "AVAILABLE", "expirationDate": "2026-11-30", "maxDiscountValue": 20.0, "partnerName": "Petrobras", "rules": [{ "discountPerLiter": 0.10, "minValue": 30.0, "maxDiscountValue": 20.0 }] }] }, "unavailable": {"title": "Indisponiveis", "list": []}, "clubCoupons": { "id": "club-1", "title": "Clube Premmia", "isClubCoupon": true, "list": [] }, "quantityAvailable": 3 }Nearby / in-station (locateStation)
POST
/v1/stations/locateopendataResolves whether the member is physically at a station (currentStation) and the closestStation match, including CNPJ, fuel grades, franchises, geofence flags and pay-at-pump automation (paymentFlow, codeInPlate).
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- currentStation
- closestStation
- id
- name
- cnpj
- latitude
- longitude
- zipCode
- state
- city
- neighborhood
- street
- tipStatus
- distance
- closeToGasStation
- paymentFlow
- codeInPlate
- reviews
- fuels
- franchises
POST /v1/stations/locate HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "latitude": -23.5614, "longitude": -46.6558 }{ "currentStation": { "id": "st-9821", "name": "Posto Petrobras Paulista", "cnpj": "33.000.167/0001-01", "favorite": true, "phone": "1132590000", "latitude": -23.5615, "longitude": -46.6559, "zipCode": "01310-100", "state": "SP", "city": "Sao Paulo", "neighborhood": "Bela Vista", "street": "Av. Paulista 1000", "tipStatus": "ENABLED", "distance": 12.4, "closeToGasStation": true, "automation": {"paymentFlow": "PUMP_CODE", "codeInPlate": false}, "reviews": {"quantity": 1842, "score": 4.6}, "fuels": [{"id": "gas", "name": "Gasolina", "code": "GASOLINA"}], "paymentMethods": [{"name": "PIX"}], "franchises": [{"code": "BRMANIA", "type": "CONVENIENCE", "name": "BR Mania"}] }, "closestStation": { "id": "st-9821", "name": "Posto Petrobras Paulista", "cnpj": "33.000.167/0001-01", "distance": 12.4 } }Search stations (searchStations)
POST
/v1/stations/searchopendataPages the station directory with CNPJ, geolocation, fuel grades and convenience-store / lubricant franchises for the home map search.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- page
- total
- lastPage
- stations
- id
- name
- cnpj
- favorite
- latitude
- longitude
- city
- state
- distance
- closeToGasStation
- fuels
- franchises
POST /v1/stations/search HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "latitude": -23.5614, "longitude": -46.6558, "page": 1 }{ "page": 1, "total": 184, "lastPage": 19, "stations": [{ "id": "st-9821", "name": "Posto Petrobras Paulista", "cnpj": "33.000.167/0001-01", "favorite": true, "latitude": -23.5615, "longitude": -46.6559, "city": "Sao Paulo", "state": "SP", "distance": 12.4, "closeToGasStation": true, "fuels": [{"id": "gas", "name": "Gasolina", "code": "GASOLINA"}], "franchises": [{"code": "BRMANIA", "type": "CONVENIENCE", "name": "BR Mania"}] }] }List payment methods (listPaymentMethods)
POST
/v1/payments/methodsopenbankingLists the member's in-app tender for a station: Pix, enrolled credit cards (brand, last4, bin, cardholderName, expiry) and cash, as shown on the pump checkout sheet.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- methods
- pix
- creditCard
- cash
- brand
- last4
- bin
- cardholderName
- expirationMonth
- expirationYear
- enabled
- isNewMethod
POST /v1/payments/methods HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "stationId": "st-9821" }{ "methods": { "pix": { "id": "pix-1", "type": "PIX", "title": "Pix", "subtitle": "Pagar com Pix", "isNewMethod": false, "enabled": true }, "creditCard": { "id": "cc-88", "type": "CREDIT_CARD", "title": "Visa final 4242", "subtitle": "Credito", "isNewMethod": false, "enabled": true, "brand": "VISA", "last4": "4242", "bin": "424242", "cardholderName": "ANA SILVA", "expirationMonth": 12, "expirationYear": 2028 }, "cash": { "id": "cash-1", "type": "CASH", "title": "Dinheiro" } } }Create checkout session (createCheckout)
POST
/v1/payments/checkoutopenfinanceOpens a provider-mediated checkout session for a pump payment and returns checkoutSessionId, customerId, amount and merchantOrderId handed to the payments SDK.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- checkoutSessionId
- customerId
- country
- createdAt
- amount
- merchantOrderId
- paymentDescription
POST /v1/payments/checkout HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "stationId": "st-9821", "amount": 180.5, "paymentMethodId": "pix-1", "pumpCode": "07" }{ "checkoutSessionId": "chk_7f3a91", "customerId": "cus_ana_silva", "country": "BR", "createdAt": "2026-10-09T18:22:11Z", "amount": 180.5, "merchantOrderId": "ord-9821-07", "paymentDescription": "Abastecimento Posto Paulista bico 07" }Confirm pump payment (confirmPayment)
POST
/v1/payments/confirmopenfinanceConfirms an in-station fill-up: returns paymentId/transactionId, the Pix copia-e-cola pixCode plus pixQrCode, the pump supplyId and the attendant paymentValidationDigits.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- paymentId
- transactionId
- voucherCode
- paymentTimeLimit
- paymentValidationDigits
- synchronizationType
- pixCode
- pixQrCode
- supplyId
- firstPayment
- orderId
POST /v1/payments/confirm HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "stationId": "st-9821", "amount": 180.5, "paymentMethodId": "pix-1", "pumpCode": "07" }{ "paymentId": "pay-4412", "transactionId": "txn-9821-07", "voucherCode": "VV-88291", "paymentTimeLimit": 300, "paymentValidationDigits": "47", "synchronizationType": "PIX", "pixCode": "<pix-copia-e-cola-code>", "pixQrCode": "<pix-qr-code-image>", "supplyId": "sup-07-9821", "firstPayment": false, "successScreen": { "title": "Pagamento iniciado", "orderId": "ord-9821-07", "description": "Abastecimento bico 07" } }Poll async pump payment (getPaymentStatus)
POST
/v1/payments/statusopenfinancePolls an in-progress pump payment (Pix, card or cash) for status, an optional voucherCode and the split of paymentValue, pointsAmount, voucherAmount and firstPayment.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- status
- voucherCode
- split
- paymentValue
- pointsAmount
- voucherAmount
- firstPayment
POST /v1/payments/status HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "checkoutSessionId": "chk_7f3a91" }{ "status": "CONFIRMED", "voucherCode": "VV-88291", "split": { "paymentValue": 160.5, "pointsAmount": 20.0, "voucherAmount": 0.0, "firstPayment": false } }Cancel async payment (cancelPayment)
POST
/v1/payments/cancelopenfinanceCancels an in-flight pump payment and returns success plus the title/message shown on the cancellation screen.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- success
- title
- message
POST /v1/payments/cancel HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "checkoutSessionId": "chk_7f3a91" }{ "success": true, "title": "Pagamento cancelado", "message": "O abastecimento foi cancelado." }Remaining station spend (getSpendLimits)
POST
/v1/payments/limitsopenfinanceReturns how many in-app pump payments the member still has today (remainingDailyCount) and the remaining monthly BRL cap (remainingMonthlyAmount) at a given station.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- stationId
- remainingDailyCount
- remainingMonthlyAmount
POST /v1/payments/limits HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "stationId": "st-9821" }{ "remainingDailyCount": 4, "remainingMonthlyAmount": 1250.0 }Payment history (getPaymentHistory)
POST
/v1/payments/historyopenfinancePages the member's in-app pump and store ledger by year and month, with per-fill purchasedFuelVolume, transactionValue, couponDiscountLabel and points earned.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- year
- months
- payments
- items
- points
- price
- quantity
- couponDiscountLabel
- paymentType
- totalAmountWithDiscount
- transactionDiscount
- stationName
- transactionType
- transactionValue
- purchasedFuelVolume
POST /v1/payments/history HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "year": 2026 }{ "year": 2026, "months": [{ "month": 10, "payments": [{ "date": "2026-10-09", "items": [{ "id": "it-1", "name": "Gasolina comum", "points": 180, "price": 180.5, "quantity": 32.8, "type": "FUEL", "couponDiscountLabel": "R$ 0,10/L" }], "paymentType": "PIX", "totalAmountWithDiscount": 177.22, "transactionDiscount": 3.28, "stationName": "Posto Petrobras Paulista", "transactionType": "SUPPLY", "transactionValue": 180.5, "purchasedFuelVolume": 32.8 }] }] }Vouchers and fuel credit (listVouchers)
POST
/v1/loyalty/vouchersopenfinanceReturns the fuel-credit ledger: accumulatedPoints and accumulatedFuelVoucher plus voucher buckets (available, overdue, pending) with voucherCode, expirationDate and luckyNumbers.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- accumulatedPoints
- accumulatedFuelVoucher
- vouchers
- available
- overdue
- pending
- partnerName
- description
- voucherCode
- productId
- expirationDate
- created
- luckyNumbers
POST /v1/loyalty/vouchers HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "accumulatedPoints": 12480, "accumulatedFuelVoucher": 87.5, "vouchers": { "available": [{ "partnerName": "Premmia", "description": "Vale-Premmia combustivel", "voucherCode": "VV-88291", "productId": "fuel-voucher", "expirationDate": "2026-12-31", "created": "2026-09-01", "luckyNumbers": ["184729"] }], "overdue": [], "pending": [] } }Points and fuel-credit statement (getPointsStatement)
POST
/v1/loyalty/statementopenfinanceReturns the points and fuel-credit statement grouped by day: entry type (earn or burn), monetaryValue, points, miles, expirationDate, daysUntilExpiration and resellerType.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- asOf
- groups
- entries
- type
- monetaryValue
- points
- description
- expirationDate
- category
- miles
- daysUntilExpiration
- resellerType
POST /v1/loyalty/statement HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "period": "LAST_90_DAYS" }{ "asOf": "2026-10-09", "groups": [{ "date": "2026-10-09", "entries": [{ "id": "pt-991", "type": "EARN", "monetaryValue": 0, "points": 180, "description": "Abastecimento Posto Paulista", "expirationDate": "2027-10-09", "category": "FUEL", "miles": 0, "daysUntilExpiration": 365, "resellerType": "STATION" }] }] }Redeem gift card (redeemGiftCard)
POST
/v1/loyalty/gift-cards/redeemopenfinanceRedeems a gift card into the stored-value / fuel-voucher balance and returns status, transactionCode and description.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- giftCardId
- status
- transactionCode
- description
POST /v1/loyalty/gift-cards/redeem HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "giftCardId": "gc-55A1" }{ "status": "CREDITED", "transactionCode": "txn-gift-9012", "description": "Saldo Premmia creditado" }Rewards catalog (searchRewards)
POST
/v1/rewards/searchopendataSearches the points catalog and returns redeemable coupons and offers with points cost, monetaryValue, cashbackAmount and redeemLabel (fuel vouchers, partner miles, store rewards).
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- coupons
- offers
- id
- type
- brand
- title
- points
- monetaryValue
- cashbackAmount
- redeemLabel
- isCoupon
- description
POST /v1/rewards/search HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "query": "vale combustivel", "page": 1 }{ "coupons": [{ "id": "rc-10", "type": "COUPON", "brand": "Premmia", "title": "Vale R$ 50 combustivel", "imageUrl": "https://cdn.example/vale50.png", "points": 5000, "monetaryValue": 50.0, "description": "Resgate em postos Petrobras", "cashbackAmount": 0, "redeemLabel": "Resgatar", "isCoupon": true }], "offers": [{ "id": "off-22", "type": "MILES", "brand": "Azul", "title": "Milhas Azul", "points": 8000, "monetaryValue": 0, "cashbackAmount": 0, "redeemLabel": "Trocar", "isCoupon": false }] }Clube Premmia subscription (getSubscription)
POST
/v1/subscriptions/currentopendataReads the member's paid club plan: price, isActive, startDate/endDate/nextDueDate and the memberSubscriptionId used by the cancel and reactivate flows.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- id
- versionId
- title
- description
- termsUrl
- startDate
- endDate
- nextDueDate
- price
- isActive
- memberSubscriptionId
POST /v1/subscriptions/current HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "id": "club-premmia", "versionId": "v3", "title": "Clube Premmia", "description": "Cupons extras e mais pontos no posto preferido", "termsUrl": "https://example.com/club-terms", "startDate": "2026-01-15", "endDate": "2026-12-15", "nextDueDate": "2026-11-15", "price": 9.9, "isActive": true, "memberSubscriptionId": "msub-441" }Expiring points (getExpiringPoints)
POST
/v1/loyalty/points/expiringopenfinanceReturns the points due to expire this month, next month and in two months for the statement screen.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- expiring
- currentMonth
- nextMonth
- inTwoMonths
POST /v1/loyalty/points/expiring HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> {}{ "expiring": { "currentMonth": 420, "nextMonth": 1100, "inTwoMonths": 800 } }Payer session (createPayerSession)
POST
/v1/payments/payer-sessionopenbankingOpens a payments-provider customer and card-enrollment session (customerId plus enrollmentSession.token) used by the card-enrollment SDK before a card is stored.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- country
- customerId
- enrollmentSession
- id
- token
POST /v1/payments/payer-session HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "country": "BR" }{ "country": "BR", "customerId": "cus_ana_silva", "enrollmentSession": { "id": "pms_91ab", "token": "<enrollment-session-token>" } }Enroll credit card (enrollCard)
POST
/v1/payments/cardsopenbankingEnrolls a credit card through the provider enrollment session and returns the tokenized card (last4, bin, brand, cardholderName, expiry) stored for pump checkout.
Auth: Bearer session token from the CPF sign-in and one-time-code flow; the client also sends an app-integrity token and an app-version header.
- id
- type
- title
- subtitle
- enabled
- last4
- bin
- cardholderName
- expirationMonth
- expirationYear
- brand
POST /v1/payments/cards HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json x-app-version: 7.15.0 x-integrity-token: <integrity-token> { "enrollmentToken": "<enrollment-session-token>", "nickname": "Visa pessoal" }{ "id": "cc-89", "type": "CREDIT_CARD", "title": "Visa final 1111", "subtitle": "Credito", "enabled": true, "last4": "1111", "bin": "411111", "cardholderName": "ANA SILVA", "expirationMonth": 7, "expirationYear": 2029, "brand": "VISA" }
Data categories
- loyalty points
- fuel vouchers
- coupons
- gas stations
- in-app payments
- payment methods
- subscriptions
- member profile
- payment history
- points statement
Where teams use this data
Fleet fuel-spend reconciliation
A fleet back office pulls userBalance.accumulatedFuelVoucher, ToPay paymentId / pixCode, and userPaymentsV2 purchasedFuelVolume plus transactionValue per pump checkout, then matches merchantOrderId and gas-station CNPJ from homeGasStation / gasStationsV3 against the corporate card statement.
Coupon and Clube offer intelligence
Retail media teams read couponsWalletV4 couponV3 rows (discountPerLiter, maxDiscountValue, isClubPremmia, station rules) and userCurrentSubscription.isActive to see which per-litre offers a driver actually holds before a fill-up.
Station-level payment-rail monitor
Acquirers watch paymentMethodsV4 registeredMethods (Pix, creditCard last4/bin, cash) plus userRemainingTransactions remainingDailyCount / remainingMonthlyAmount to know which rails a given Petrobras post still accepts in-app and how much headroom the member has.
Expiring-points retention trigger
A CRM listens to transactionsPointsV2 expiringPoints.actualMonth / nextMonth and homeHeader.pointBalance to message members whose Premmia points or Vale-Premmia credit is about to lapse, then deep-links them into productSearchV3 redeemCoupons.
Frequently asked questions
How does Petrobras Premmia authenticate members?
Members sign in with their CPF on the createSession call, confirm an SMS one-time code via verifyOtpCode (which returns the session token), or register through registerMember. Later calls send that token as an Authorization Bearer header together with an app-integrity token.
What balance and voucher fields are available?
The balance call returns accumulatedPoints, accumulatedFuelVoucher and paymentConfig caps such as maximumAmountByCreditCard and maximumTotalAmount. The vouchers call repeats those totals and pages buckets into available, overdue and pending items with voucherCode, expirationDate and luckyNumbers. The home header adds pointBalance and savings for the home screen.
How does in-app pump payment work?
listPaymentMethods shows Pix, saved cards (brand, last4, bin, cardholderName) and cash. createCheckout opens a payment session (checkoutSessionId, merchantOrderId, amount); confirmPayment returns the Pix pixCode and pixQrCode plus the pump supplyId; getPaymentStatus polls the status and paymentValue/pointsAmount/voucherAmount split; cancelPayment aborts it. getSpendLimits exposes remainingDailyCount and remainingMonthlyAmount per station.
Does the API include station location and coupons?
Yes. locateStation returns the current and closest stations with cnpj, coordinates, fuel grades, franchises and pay-at-pump automation flags; searchStations pages the same directory for the map. getCouponWallet splits available, unavailable and club coupons with couponCode and discountPerLiter, and searchRewards queries the rewards catalog by points and monetaryValue.
Apps similar to Petrobras Premmia
- Shell Box — Raízen Combustíveis' Brazil app for paying at Shell stations from the phone, earning Shell Box Club and Stix points, and redeeming partner discounts.
- KMV — Ipiranga's consumer app for filling up at Ipiranga stations, earning points that convert to cashback or partner benefits, and paying in the app or with a CPF.
- MyPertamina — Pertamina's official Indonesian loyalty app for finding nearby SPBU stations, paying for fuel with digital wallets and collecting loyalty points on fills.
- IndianOil ONE — Indian Oil's consumer app for locating petrol pumps, managing Indane LPG connections and tracking XTRAREWARDS loyalty points.
- HP PAY — Hindustan Petroleum's app for QR and paycode checkout at HP pumps, a prepaid fuel wallet, nearby-outlet search and HP Gas cylinder booking.
- АЗС Нефтьмагистраль — Official driver app of the Neftmagistral filling-station chain for map search, live fuel grades, pay-at-pump and loyalty bonuses.
Topics
- Petrobras Premmia API
- Premmia points
- Vale-Premmia
- accumulatedFuelVoucher
- Petrobras station data API
- Premmia Pix checkout
- Clube Premmia
- Vibra Energia loyalty
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