MyPertamina icon

MyPertamina data API: wallet, quota and SPBU

PT Pertamina(Persero) · Payments

MyPertamina is the official consumer app of PT Pertamina (Persero), Indonesia's state-owned oil and gas company, for motorists, household LPG buyers and EV drivers who pay at Pertamina SPBU pumps, Bright Gas kiosks and public SPKLU chargers. After a mobile-number PIN (and OTP when the device is new), the home grid scans a pump QR, binds LinkAja, GoPay, OVO, ShopeePay, AstraPay, debit or credit as the source of funds, spends loyalty vouchers, looks up nearby SPBU with live product prices, registers vehicles on the government's Subsidi Tepat BBM programme, orders Pertamina Delivery Service (PDS) jerry-can drops, and opens Bright Gas and SPKLU microsites. Copy is Indonesian; the client is Indonesia-only and sits beside Shell, BP-AKR and other pump apps as Pertamina's first-party till rather than a multi-brand wallet.

Registered-vehicle remainingQuota and linked sourceOfFund cash are the two numbers the pump QR ticket is built from. Each paired wallet row returns balance.amount, isPaired and a source of LINKAJA, GOPAY, OVO, SHOPEEPAY or ASTRAPAY; the loyalty card adds point plus grade.accumulatedValue. Nearby SPBU records carry agentNumber, per-product price and queueDensity.isCrowded, while BBM history rows stamp transactionId, paymentAmount and litres in quantity. Fleet-expense bots, subsidy-quota monitors and station-intelligence dashboards consume those fields; openData Studio turns them into callable open data.

Screenshots

  • MyPertamina screenshot 1
  • MyPertamina screenshot 2
  • MyPertamina screenshot 3
  • MyPertamina screenshot 4

API surface

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

  • PIN login and session tokens

    POST /v1/session/pin osint

    Exchanges the registered mobile and PIN for authToken, refreshToken and a PDS deliverySessionKey that gate every later wallet, quota and pump-QR call.

    Auth: x-geolocation plus a client Authorization header. Body is mobileNumber, pin, fcmToken and isFreshInstall. Response authToken is stored and sent as Authorization: Bearer on later calls; refreshToken renews the session when auth-token-expired elapses.

    • mobileNumber
    • pin
    • fcmToken
    • isFreshInstall
    • authToken
    • authTokenExpired
    • refreshToken
    • refreshTokenExpired
    • deliverySessionKey
    • name
    • success
    POST /v1/session/pin HTTP/1.1
    Authorization: Bearer <client>
    x-geolocation: -6.2088,106.8456
    Content-Type: application/json
    
    {
      "mobileNumber": "081234567890",
      "pin": "******",
      "fcmToken": "fcm-device-token",
      "isFreshInstall": false
    }
    {
      "success": true,
      "data": {
        "authToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.session",
        "authTokenExpired": 1760000000,
        "refreshToken": "rt-myp-7c11",
        "refreshTokenExpired": 1762580000,
        "deliverySessionKey": "pds-sess-4419",
        "name": "Budi Santoso"
      }
    }
  • Signed-in profile

    GET /v1/me/card osint

    Reads the signed-in customer card: NIK, loyalty point, Subsidi Tepat link flags and how many subsidised vehicles sit on the account.

    Auth: Authorization: Bearer authToken from PIN login.

    • id
    • name
    • mobileNumber
    • email
    • nationalityId
    • dob
    • point
    • isConnectedSubsidy
    • isSingleProfile
    • activeSubsidyVehicleCount
    • linkAjaPairedStatus
    • isEmailVerified
    • isBiometricEnabled
    • status
    GET /v1/me/card HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "data": {
        "id": "usr-88421",
        "name": "Budi Santoso",
        "nickname": "Budi",
        "mobileNumber": "081234567890",
        "email": "[email protected]",
        "isEmailVerified": true,
        "nationalityId": "3174xxxxxxxxxxxx",
        "dob": "1990-04-12",
        "pob": "Jakarta",
        "gender": "M",
        "point": 1250,
        "status": "ACTIVE",
        "isConnectedSubsidy": true,
        "isSingleProfile": true,
        "activeSubsidyVehicleCount": 2,
        "linkAjaPairedStatus": true,
        "isBiometricEnabled": false,
        "isBlacklistedPoint": false,
        "isBlacklistedPromo": false,
        "onboardingStatus": true,
        "vehicles": []
      }
    }
  • Linked wallet balances

    GET /v1/wallets/float openbanking

    Lists every paired source of funds with the spendable balance.amount shown on the home payment strip (LinkAja, GoPay, OVO, ShopeePay, AstraPay, debit, credit).

    Auth: Authorization: Bearer authToken from PIN login. Query product selects the product line (BBM / NFR).

    • product
    • id
    • name
    • sourceOfFund
    • type
    • isActive
    • isPaired
    • isDefault
    • isAllowVoucher
    • balance.amount
    • status
    • iconUrl
    GET /v1/wallets/float?product=BBM HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "data": [
        {
          "id": "pm-linkaja",
          "name": "LinkAja",
          "sourceOfFund": "LINKAJA",
          "type": "WALLET",
          "isActive": true,
          "isPaired": true,
          "isDefault": true,
          "isAllowVoucher": true,
          "iconUrl": "https://cdn.example.com/static/payment/linkaja.png",
          "balance": { "amount": "185000" },
          "card": null,
          "status": "ACTIVE"
        },
        {
          "id": "pm-gopay",
          "name": "GoPay",
          "sourceOfFund": "GOPAY",
          "type": "WALLET",
          "isActive": true,
          "isPaired": true,
          "isDefault": false,
          "balance": { "amount": "42000" },
          "status": "ACTIVE"
        }
      ]
    }
  • Available payment methods

    GET /v1/tills/methods openfinance

    Returns the bindable till mix (wallets, debit, credit, QRIS) plus card.maskedNumber and whether debit/credit binding is currently capped.

    Auth: Authorization: Bearer authToken from PIN login.

    • isLimitCreditBinding
    • isLimitDebitBinding
    • isReleaseCreditBinding
    • isReleaseDebitBinding
    • listPaymentMethod
    • sourceOfFund
    • isRegistered
    • isPaired
    • card.bankName
    • card.maskedNumber
    • card.panNumber
    • isSnap
    GET /v1/tills/methods HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "data": {
        "isLimitCreditBinding": false,
        "isLimitDebitBinding": false,
        "isReleaseCreditBinding": true,
        "isReleaseDebitBinding": true,
        "listPaymentMethod": [
          {
            "id": "pm-debit-bca",
            "name": "BCA Debit",
            "sourceOfFund": "DEBIT",
            "type": "DEBIT",
            "isRegistered": true,
            "isPaired": true,
            "isSnap": false,
            "card": {
              "bankName": "BCA",
              "maskedNumber": "****1234",
              "panNumber": "pan-4419",
              "isTokenExpired": false
            },
            "isActive": true
          }
        ]
      }
    }
  • Loyalty grade and points

    GET /v1/rewards/grade opendata

    Reads the loyalty card: current point balance and expiry, referralCode, voucher count and the Gold/Silver grade window driven by accumulatedValue.

    Auth: Authorization: Bearer authToken from PIN login.

    • userId
    • referralCode
    • totalVoucher
    • point.point
    • point.expiredAt
    • grade.accumulatedValue
    • grade.startPeriod
    • grade.endPeriod
    • grade.levels.name
    • grade.levels.targetValue
    • grade.levels.isCurrentValue
    GET /v1/rewards/grade HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": {
        "userId": "usr-88421",
        "referralCode": "BUDI88421",
        "totalVoucher": "3",
        "point": {
          "point": "1250",
          "expiredAt": "2026-12-31T17:00:00Z"
        },
        "grade": {
          "accumulatedValue": 4500000,
          "startPeriod": "2026-01-01",
          "endPeriod": "2026-12-31",
          "levels": [
            { "name": "Silver", "targetValue": 1000000, "isCurrentValue": false },
            { "name": "Gold", "targetValue": 5000000, "isCurrentValue": true }
          ]
        }
      }
    }
  • Loyalty voucher wallet

    GET /v1/rewards/vouchers opendata

    Pages the customer's active fuel and non-fuel vouchers with redeem code, amount and expiredAt used at pump checkout.

    Auth: Authorization: Bearer authToken from PIN login. Query page, perPage, isActive, isFuel.

    • page
    • perPage
    • isActive
    • isFuel
    • name
    • description
    • terms
    • detailVoucher.code
    • detailVoucher.amount
    • detailVoucher.expiredAt
    • detailVoucher.status
    GET /v1/rewards/vouchers?page=1&perPage=20&isActive=true&isFuel=true HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": [
        {
          "name": "Diskon Pertamax 2.000/L",
          "isFuel": true,
          "description": "Potongan harga Pertamax",
          "terms": "Berlaku di SPBU MyPertamina",
          "headerImage": "https://cdn.example.com/voucher/header.png",
          "bannerImage": "https://cdn.example.com/voucher/banner.png",
          "tileImage": "https://cdn.example.com/voucher/tile.png",
          "detailVoucher": {
            "code": "PTMX2000",
            "amount": "2000",
            "expiredAt": "2026-11-30T17:00:00Z",
            "status": "ACTIVE"
          }
        }
      ],
      "pagination": { "page": 1, "perPage": 20 }
    }
  • Nearby SPBU with prices

    POST /v1/pumps/nearby opendata

    Returns nearby Pertamina outlets with agentNumber, live product prices, facilities and a queueDensity flag used by the Cari SPBU map.

    Auth: Authorization: Bearer authToken from PIN login.

    • latitude
    • longitude
    • fuelType
    • agentNumber
    • avgRating
    • range
    • isMyPertaminaSupport
    • facilities
    • address.formattedAddress
    • location.latitude
    • location.longitude
    • products.name
    • products.price
    • queueDensity.isCrowded
    • queueDensity.label
    POST /v1/pumps/nearby HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "latitude": -6.2088,
      "longitude": 106.8456,
      "fuelType": "Pertamax"
    }
    {
      "data": [
        {
          "agentNumber": "34.12345",
          "avgRating": 4.6,
          "range": 1.2,
          "isMyPertaminaSupport": true,
          "facilities": ["Toilet", "Musholla", "Mini Market"],
          "address": {
            "street": "Jl. Gatot Subroto",
            "formattedAddress": "SPBU 34.12345, Jl. Gatot Subroto, Jakarta"
          },
          "location": { "latitude": -6.2101, "longitude": 106.8440 },
          "products": [
            { "name": "Pertamax", "price": 13500.0 },
            { "name": "Pertalite", "price": 10000.0 }
          ],
          "queueDensity": {
            "isCrowded": false,
            "label": "Lancar"
          }
        }
      ]
    }
  • BBM transaction history

    GET /v1/fills/ledger openbanking

    Pages the BBM passbook: litres, pump agentNumber, sourceOfFund and paymentAmount for each successful or pending fill.

    Auth: Authorization: Bearer authToken from PIN login. Query status filters the passbook (e.g. SUCCESS, PENDING).

    • status
    • transactionId
    • agentNumber
    • productName
    • quantity
    • unit
    • price
    • amount
    • paymentAmount
    • paymentStatus
    • sourceOfFund
    • orderType
    • createdAt
    • label
    GET /v1/fills/ledger?status=SUCCESS HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": [
        {
          "transactionId": "TRX-BBM-20261008-4419",
          "agentNumber": "34.12345",
          "productName": "Pertamax",
          "quantity": 20.5,
          "unit": "L",
          "price": 13500,
          "amount": 276750,
          "paymentAmount": 256750,
          "paymentStatus": "SUCCESS",
          "sourceOfFund": "LINKAJA",
          "orderType": "BBM",
          "createdAt": "2026-10-08T09:14:22Z",
          "label": "SPBU Gatot Subroto",
          "icon": "https://cdn.example.com/product/pertamax.png"
        }
      ]
    }
  • BBM transaction detail

    GET /v1/fills/ledger/{transactionId} openbanking

    Loads one BBM receipt: line items in litres, discount, adminFee, claimedPoint and the wallet referenceNumber used to settle the pump.

    Auth: Authorization: Bearer authToken from PIN login.

    • transactionId
    • invoiceId
    • paymentId
    • agentNumber
    • mId
    • sourceOfFund
    • originalPrice
    • discount
    • adminFee
    • paymentAmount
    • paymentStatus
    • claimedPoint
    • referenceNumber
    • items.productName
    • items.quantity
    • items.unit
    GET /v1/fills/ledger/TRX-BBM-20261008-4419 HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": {
        "id": "ord-4419",
        "transactionId": "TRX-BBM-20261008-4419",
        "invoiceId": "INV-4419",
        "paymentId": "pay-8821",
        "agentNumber": "34.12345",
        "mId": "MID-SPBU-3412345",
        "mobileNumber": "081234567890",
        "orderType": "BBM",
        "sourceOfFund": "LINKAJA",
        "cardNumber": "****1234",
        "originalPrice": 276750,
        "discount": 20000,
        "adminFee": 0,
        "amount": 256750,
        "paymentAmount": 256750,
        "paymentStatus": "SUCCESS",
        "claimedPoint": 25,
        "referenceNumber": "REF-LINKAJA-9901",
        "createdAt": "2026-10-08T09:14:22Z",
        "items": [
          {
            "productName": "Pertamax",
            "quantity": 20.5,
            "unit": "L",
            "price": 13500,
            "icon": "https://cdn.example.com/product/pertamax.png"
          }
        ]
      }
    }
  • Confirm pump QR payment

    POST /v1/pumps/confirm openfinance

    Commits a scanned pump QR: litres, subsidy flag, voucherAmount and the source-of-fund QR used to debit LinkAja / GoPay / OVO at the nozzle.

    Auth: Authorization: Bearer authToken from PIN login plus Authorization-Transaction (biometric / PIN transaction token).

    • transactionId
    • agentNumber
    • merchantId
    • terminalId
    • status
    • initialAmount
    • finalAmount
    • voucherAmount
    • item.name
    • item.qty
    • item.isSubsidy
    • payment.sof
    • payment.qrContent
    • payment.referenceNumber
    • payment.paymentId
    POST /v1/pumps/confirm HTTP/1.1
    Authorization: Bearer <session-token>
    Authorization-Transaction: txn-token-8f21
    Content-Type: application/json
    
    {
      "transactionId": "TRX-QR-20261008-8821"
    }
    {
      "success": true,
      "data": {
        "transactionId": "TRX-QR-20261008-8821",
        "agentNumber": "34.12345",
        "merchantId": "MID-SPBU-3412345",
        "terminalId": "TID-01",
        "type": "BBM",
        "status": "SUCCESS",
        "initialAmount": 276750,
        "finalAmount": 256750,
        "voucherAmount": 20000,
        "specialAmount": 0,
        "label": "SPBU Gatot Subroto",
        "paymentDate": "2026-10-08T09:14:22Z",
        "transactionDate": "2026-10-08T09:14:22Z",
        "item": [
          {
            "code": "PTMX",
            "name": "Pertamax",
            "qty": 20.5,
            "unit": "L",
            "price": 13500,
            "subTotal": 276750,
            "isSubsidy": false
          }
        ],
        "payment": {
          "paymentId": "pay-8821",
          "sof": "LINKAJA",
          "qrContent": "00020101021226...",
          "qrExpireTime": "2026-10-08T09:19:22Z",
          "referenceNumber": "REF-LINKAJA-9901",
          "redirectUrl": null
        }
      }
    }
  • Subsidi Tepat vehicle list

    GET /v1/fleet/plates opendata

    Pages the Subsidi Tepat fleet: plate, bbmType, remainingQuota in litres and APPROVE/BLOCKED/QR_EXPIRED status for each registered vehicle.

    Auth: Authorization: Bearer authToken from PIN login. Query page, perPage, q, status (APPROVE, SUBMIT, BLOCKED, QR_EXPIRED, …).

    • page
    • perPage
    • status
    • id
    • licenseNumber
    • licensePlateColor
    • bbmType
    • chassisNumber
    • cylinderVolume
    • wheelsNumber
    • transportationTypeName
    • remainingQuota
    • isDefault
    • isOwner
    • isDynamic
    GET /v1/fleet/plates?page=1&perPage=20&q=&status=APPROVE HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": [
        {
          "id": 441902,
          "licenseNumber": "B 1234 XYZ",
          "licensePlateColor": "BLACK",
          "bbmType": "Pertalite",
          "chassisNumber": "MHKAA*******1234",
          "cylinderVolume": "1198",
          "wheelsNumber": "4",
          "transportationTypeName": "Mobil Penumpang",
          "remainingQuota": 60.0,
          "isDefault": true,
          "isOwner": true,
          "isDynamic": false,
          "status": "APPROVE"
        }
      ],
      "pagination": { "page": 1, "perPage": 20 }
    }
  • Subsidi Tepat vehicle QR and quota

    POST /v1/fleet/plates/{vehicleId} opendata

    Loads the owner vehicle card: NIK, subsidyType and the QR payload whose remainingQuota the pump decrements on each subsidised litre.

    Auth: Authorization: Bearer authToken from PIN login.

    • vehicleId
    • licensePlate
    • bbmType
    • licenseNumber
    • nationalityId
    • customerType
    • subsidyType
    • isOwner
    • isPinSet
    • qrCode.qrUniqueId
    • qrCode.productName
    • qrCode.quota
    • qrCode.remainingQuota
    • qrCode.isDynamic
    • qrCode.expiredAt
    POST /v1/fleet/plates/441902 HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "vehicleId": "441902",
      "licensePlate": "B 1234 XYZ",
      "bbmType": "Pertalite"
    }
    {
      "success": true,
      "data": {
        "id": 441902,
        "licenseNumber": "B 1234 XYZ",
        "licensePlateColor": "BLACK",
        "nationalityId": "3174xxxxxxxxxxxx",
        "customerType": "INDIVIDU",
        "subsidyType": "BBM",
        "chassisNumber": "MHKAA*******1234",
        "cylinderVolume": "1198",
        "wheelsNumber": "4",
        "transportationTypeName": "Mobil Penumpang",
        "isOwner": true,
        "isDefault": true,
        "isPinSet": true,
        "isNationalityIdSet": true,
        "status": "APPROVE",
        "qrCode": {
          "id": 88210,
          "qrUniqueId": "QR-SUB-441902",
          "productName": "Pertalite",
          "quota": 80.0,
          "remainingQuota": 60.0,
          "isDynamic": false,
          "qrOnly": false,
          "wheelsNumber": "4",
          "expiredAt": "2026-12-31T17:00:00Z",
          "createdAt": "2026-01-15T03:00:00Z"
        }
      }
    }
  • Subsidised fill history per vehicle

    GET /v1/fleet/fills openbanking

    Pages subsidised litres drawn against one vehicleId — product, volume and totalAmount used to reconcile remainingQuota.

    Auth: Authorization: Bearer authToken from PIN login. Query page, perPage, vehicleId.

    • page
    • perPage
    • vehicleId
    • transactionId
    • product
    • volume
    • totalAmount
    • transactionDate
    GET /v1/fleet/fills?page=1&perPage=20&vehicleId=441902 HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "success": true,
      "data": [
        {
          "transactionId": "SUB-TX-20261007-12",
          "product": "Pertalite",
          "volume": 15.0,
          "totalAmount": 150000.0,
          "transactionDate": "2026-10-07T18:22:01Z"
        }
      ],
      "pagination": { "page": 1, "perPage": 20 }
    }
  • SPKLU charging history

    GET /v1/chargers/sessions openfinance

    Pages public SPKLU charging sessions with kWh settlement finalAmount, claimedPoint and session status.

    Auth: Authorization: Bearer authToken from PIN login. Query page, limit, status.

    • page
    • limit
    • status
    • transactionId
    • transactionType
    • finalAmount
    • claimedPoint
    • mobileNumber
    • createdAt
    GET /v1/chargers/sessions?page=1&limit=20&status=SUCCESS HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "data": [
        {
          "transactionId": "SPKLU-20261005-77",
          "transactionType": "CHARGING",
          "status": "SUCCESS",
          "finalAmount": 85000.0,
          "claimedPoint": 8,
          "mobileNumber": "081234567890",
          "createdAt": "2026-10-05T21:40:11Z"
        }
      ],
      "pagination": { "page": 1, "limit": 20 }
    }
  • PDS fuel-delivery order

    GET /v1/drops/{orderId} opendata

    Reads one Pertamina Delivery Service order: jerry-can items, deliveryCost, runner and paymentStatus for a doorstep BBM drop.

    Auth: Authorization: Bearer authToken from PIN login (deliverySessionKey from login is used on the PDS customer client).

    • id
    • transactionId
    • orderStatus
    • paymentStatus
    • sourceOfFund
    • paymentReferenceNumber
    • totalAmount
    • deliveryCost
    • claimedPoint
    • items
    • deliveryAddress
    • runner
    GET /v1/drops/PDS-20261008-19 HTTP/1.1
    Authorization: Bearer <session-token>
    {
      "data": {
        "id": "PDS-20261008-19",
        "transactionId": "TRX-PDS-19",
        "orderStatus": "ON_DELIVERY",
        "paymentStatus": "PAID",
        "sourceOfFund": "LINKAJA",
        "paymentReferenceNumber": "REF-PDS-19",
        "totalAmount": 320000,
        "deliveryCost": 25000,
        "claimedPoint": 12,
        "createdAt": "2026-10-08T11:02:00Z",
        "deliveryDescription": "Jerigen 20L Pertamax",
        "items": [
          { "productName": "Pertamax", "quantity": 20.0, "unit": "L" }
        ],
        "deliveryAddress": {
          "label": "Rumah",
          "location": { "latitude": -6.2088, "longitude": 106.8456 }
        },
        "runner": { "name": "Andi", "phoneNumber": "0812xxxxxxx" }
      }
    }

Data categories

  • balances
  • transactions
  • loyalty
  • fuel-stations
  • vehicles
  • subsidy-quota
  • ev-charging

Where teams use this data

  • Fleet fuel-spend reconciliation

    A logistics ERP pulls nightly BBM passbook rows (transactionId, agentNumber, quantity, paymentAmount, sourceOfFund) and matches them to vehicle plates so finance can close the fuel ledger without waiting on paper SPBU struk.

  • Subsidi Tepat quota monitor

    A compliance bot watches remainingQuota and VehicleStatus on each licenseNumber, then pages the per-vehicle transaction list (volume, product, totalAmount) to flag quota exhaustion or BLOCKED / QR_EXPIRED plates before the next fill.

  • SPBU price and queue intelligence

    A station-finder overlay posts lat/lon to the nearby fuel-station call and maps agentNumber, products.price and queueDensity.isCrowded so dispatchers route drivers to a Pertamina pump that still has Pertamax and is not crowded.

  • Loyalty and voucher ledger

    A rewards dashboard reads point.point, grade.accumulatedValue and the voucher wallet (detailVoucher.code, amount, expiredAt) to decide which fuel voucher to auto-apply on the next QR confirm.

Frequently asked questions

How does MyPertamina authenticate wallet and quota calls?

PIN login exchanges mobileNumber and pin for authToken and refreshToken. Later calls send Authorization: Bearer authToken. Pump QR confirm also sends an Authorization-Transaction header minted from a biometric or PIN step. The client refreshes the Bearer token when auth-token-expired elapses.

Which balances and sources of funds are exposed?

The wallet-float call returns every paired sourceOfFund with balance.amount — LinkAja, GoPay, OVO, ShopeePay, AstraPay, debit and credit — plus isDefault and isAllowVoucher. Loyalty points sit on a separate rewards card (point, expiredAt, grade).

What is remainingQuota on a Subsidi Tepat vehicle?

Each registered plate has a remainingQuota in litres for its bbmType (typically Pertalite). The owner-detail call returns the QR payload (qrUniqueId, quota, remainingQuota, isDynamic); the per-vehicle fill list pages volume drawn against that vehicleId so the quota can be reconciled.

Can nearby SPBU prices and queues be read?

Yes. Posting latitude, longitude and fuelType returns agentNumber, products with live price, facilities, isMyPertaminaSupport and queueDensity.isCrowded for each Pertamina outlet on the Cari SPBU map.

Apps similar to MyPertamina

  • Shell Go+ Indonesia — Official loyalty app of PT Isla Energy Indonesia, a Shell licensee, for finding nearby Shell stations, tracking a fill, managing membership cards and redeeming offers by scanning in-store QR codes.
  • LinkAja — Indonesian e-wallet that MyPertamina integrates for non-cash fuel payments at Pertamina public filling stations.
  • GoPay — Indonesian e-wallet for QRIS checkout, bank transfers and topping up from other wallets such as LinkAja, OVO and ShopeePay.
  • OVO — Indonesian payments and savings app for cashless checkout, with listed cashback on groceries, food and gas-station spend.
  • Voltron — Indonesian EV charging app for finding nearby chargers, checking live availability, starting a session and paying, operated by a private charging-point company.
  • PLN Mobile — Official PLN app for buying prepaid electricity tokens, paying bills, reporting meter readings and filing outage complaints in Indonesia.
  • IndianOil ONE — Indian Oil's consumer app for Indane LPG cylinder booking, nearest petrol-pump lookup and XTRAREWARDS loyalty points.

Topics

  • MyPertamina API
  • Pertamina wallet balance
  • Subsidi Tepat remainingQuota
  • SPBU agentNumber prices
  • LinkAja GoPay fuel payment
  • Pertamina loyalty points
  • SPKLU charging history
  • Pertamina Delivery Service order

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