АЗС Нефтьмагистраль icon

AZS Neftmagistral data API: stations, bonuses and pumps

TD NM, OOO · Payments

АЗС Нефтьмагистраль (AZS Neftmagistral) is the official driver app of the Нефтьмагистраль filling-station chain, published on Google Play by TD NM, OOO. Motorists across Russia use it to pin nearby АЗС on a map, compare live fuel grades, pay at the pump without leaving the car, start an EV charge, order from the station shop, and collect loyalty bonuses, coupons and pump-staff gifts. Sign-in is a phone number plus an SMS code or Mobile ID. It competes with the branded apps of larger Russian oil companies such as Lukoil, Gazprom Neft and Rosneft, and with multi-brand pay-at-pump wallets, as the first-party app for this chain's own stations.

Each mapped station carries live fuels with a per-grade price, plus latitude, longitude, address, a closed flag and EV connectors. The loyalty wallet reports bonuses, bonusLevel, currentAmount, overdraftLimit and an electro balance for charging. Fuel-spend rows expose litres, amount, gasStationAddress and receiptUrl; a pump session lists columns with a per-grade limit; an in-flight order tracks status, payment, bonusesPayment and paymentUrl; the shop basket totals payment, minPayment and cashback.

Fleet spend tools reconcile litres against station prices, loyalty ops watch bonus tiers and coupon expiredDate, and pump-floor monitors poll the active fueling and charging orders. openData Studio turns that surface into callable open data.

Screenshots

  • АЗС Нефтьмагистраль screenshot 1
  • АЗС Нефтьмагистраль screenshot 2
  • АЗС Нефтьмагистраль screenshot 3
  • АЗС Нефтьмагистраль screenshot 4
  • АЗС Нефтьмагистраль screenshot 5
  • АЗС Нефтьмагистраль screenshot 6
  • АЗС Нефтьмагистраль screenshot 7

API surface

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

  • Register phone session

    POST /v1/azs/auth/phone-session openfinance

    Opens a login session for a phone number (SMS) or Mobile ID (hheUri). sessionId is polled by SessionStatus and consumed by ConfirmCode.

    Auth: Unauthenticated. Starts the phone / Mobile ID login; the confirm step consumes the SMS or Mobile ID result.

    • phone
    • campaign
    • promocode
    • captchaToken
    • theme
    • mobileId
    • sessionId
    • authType
    • hheUri
    POST /v1/azs/auth/phone-session HTTP/1.1
    Content-Type: application/json
    
    {
      "phone": "79001234567",
      "campaign": null,
      "promocode": null,
      "captchaToken": "captcha-token-example",
      "theme": "LIGHT",
      "mobileId": 0
    }
    {
      "sessionId": 1842201,
      "authType": 1,
      "hheUri": null
    }
  • Confirm SMS or Mobile ID code

    POST /v1/azs/auth/sms-confirm openfinance

    Consumes the SMS / Mobile ID code and returns the UserModel envelope (id, preferred fuelTypeId, session token, account status).

    Auth: Unauthenticated. Body is ConfirmModel (code, phone, mobileId) from the phone-session step.

    • code
    • phone
    • mobileId
    • id
    • fuelTypeId
    • token
    • testStatus
    • status
    • statusInfo
    POST /v1/azs/auth/sms-confirm HTTP/1.1
    Content-Type: application/json
    
    {
      "code": "482913",
      "phone": "79001234567",
      "mobileId": 0
    }
    {
      "id": 551002,
      "fuelTypeId": 3,
      "token": "nm-session-token-example",
      "testStatus": 0,
      "status": 1,
      "statusInfo": null
    }
  • Create auth token

    POST /v1/azs/auth/token openfinance

    Issues AuthTokenModel.token (plus any campaign/promocode attached at login) that later IronWater requests send as the session credential.

    Auth: Unauthenticated bootstrap after SMS confirm. The returned token is the session credential for later station, order, shop and loyalty calls.

    • token
    • campaign
    • promocode
    POST /v1/azs/auth/token HTTP/1.1
    Content-Type: application/json
    
    {}
    {
      "token": "nm-session-token-example",
      "campaign": null,
      "promocode": null
    }
  • List nearby gas stations

    POST /v1/azs/stations/nearby opendata

    Returns the map pin list filtered by location (and optional promo/product/shop filters): station id, coordinates, live fuel prices, EV connectors and opening hours.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • id
    • name
    • number
    • latitude
    • longitude
    • address
    • type
    • pinType
    • distance
    • closed
    • yandexId
    • favorite
    • fuels
    • price
    • connectors
    • workTimes
    • presenceInTheRadius
    • location
    POST /v1/azs/stations/nearby HTTP/1.1
    Content-Type: application/json
    
    {
      "promoId": null,
      "productId": null,
      "presentId": null,
      "goodOrderId": null,
      "serviceId": null,
      "query": null,
      "location": [55.7558, 37.6173]
    }
    [
      {
        "id": 412,
        "name": "АЗС Нефтьмагистраль 12",
        "number": "12",
        "latitude": 55.7891,
        "longitude": 37.5402,
        "address": "Москва, Ленинградское шоссе, 25",
        "type": 0,
        "pinType": 1,
        "distance": 840,
        "closed": false,
        "message": "",
        "yandexId": "ym-gs-412",
        "favorite": true,
        "fuels": [
          {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49}
        ],
        "connectors": [],
        "workTimes": [
          {"title": "Круглосуточно", "days": 127, "start": "00:00", "end": "23:59", "date": null}
        ],
        "presenceInTheRadius": true
      }
    ]
  • Read gas-station details

    POST /v1/azs/stations/card opendata

    Loads one station card (GasStationDetails): description, phone, action buttons, photos, plus the inherited map fields and live fuels.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • id
    • extendedId
    • location
    • name
    • address
    • description
    • phone
    • fuels
    • price
    • services
    • connectors
    • hashedImages
    • closed
    POST /v1/azs/stations/card HTTP/1.1
    Content-Type: application/json
    
    {
      "id": 412,
      "extendedId": null,
      "location": [55.7558, 37.6173]
    }
    {
      "id": 412,
      "name": "АЗС Нефтьмагистраль 12",
      "number": "12",
      "latitude": 55.7891,
      "longitude": 37.5402,
      "address": "Москва, Ленинградское шоссе, 25",
      "closed": false,
      "description": "Магазин, мойка, зарядка",
      "phone": "+74951234567",
      "fuels": [
        {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49}
      ],
      "services": [{"id": 8, "name": "Мойка"}],
      "connectors": ["CCS2"],
      "hashedImages": []
    }
  • Load pay-at-pump session

    POST /v1/azs/pumps/session openbanking

    Returns the pump-floor snapshot for a station: columns with per-grade litre limits, live fuels, quick-pay amounts and any spend-cap warning.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • id
    • name
    • address
    • columns
    • number
    • disabled
    • fuelTypes
    • limit
    • fuels
    • price
    • offers
    • quickValues
    • limitSpent
    • limitSpentText
    POST /v1/azs/pumps/session HTTP/1.1
    Content-Type: application/json
    
    {
      "id": 412
    }
    {
      "id": 412,
      "name": "АЗС Нефтьмагистраль 12",
      "address": "Москва, Ленинградское шоссе, 25",
      "columns": [
        {"id": 1, "number": "3", "disabled": false, "fuelTypes": [{"id": 3, "limit": 80}]}
      ],
      "fuels": [
        {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true, "price": 62.49}
      ],
      "offers": [],
      "quickValues": [{"value": 1000}, {"value": 2000}, {"value": 3000}],
      "limitSpent": false,
      "limitSpentText": null
    }
  • Read loyalty bonuses

    POST /v1/azs/loyalty/wallet openbanking

    Reads the loyalty wallet shown on the home/profile screens: bonus points, tier, running spend, overdraft, EV electro balance, fortune-wheel credits and gift catalogs.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • bonuses
    • bonusLevel
    • currentAmount
    • overdraftLimit
    • overdraftEnabled
    • fortuneCount
    • fortuneExpiredDate
    • electro
    • chipPromoId
    • levels
    • products
    • presents
    • gurmanika
    • fuelingEmployees
    POST /v1/azs/loyalty/wallet HTTP/1.1
    Content-Type: application/json
    
    {}
    {
      "bonuses": 12480,
      "bonusLevel": 2,
      "currentAmount": 1860.5,
      "overdraftLimit": 500,
      "overdraftEnabled": true,
      "fortuneCount": 1,
      "fortuneExpiredDate": 1769904000,
      "electro": 12.4,
      "chipPromoId": 0,
      "levels": [],
      "products": [],
      "presents": [],
      "gurmanika": null,
      "fuelingEmployees": null
    }
  • Page fuel and bonus transactions

    POST /v1/azs/loyalty/ledger openbanking

    Pages the member ledger (fuel fills and bonus-only rows) with station, litres, amount and a fiscal receipt URL.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • from
    • to
    • type
    • categories
    • pageNumber
    • pageSize
    • onlyBonuses
    • id
    • gasStation
    • gasStationAddress
    • date
    • category
    • text
    • title
    • amount
    • litres
    • receiptUrl
    • value
    POST /v1/azs/loyalty/ledger HTTP/1.1
    Content-Type: application/json
    
    {
      "from": 1756684800,
      "to": 1769904000,
      "type": null,
      "categories": [],
      "pageNumber": 1,
      "pageSize": 20,
      "onlyBonuses": false
    }
    [
      {
        "id": 908812334,
        "gasStation": "АЗС Нефтьмагистраль 12",
        "gasStationAddress": "Москва, Ленинградское шоссе, 25",
        "date": 1767225600,
        "type": 1,
        "category": 2,
        "text": "АИ-95",
        "title": "Заправка",
        "amount": 2499.6,
        "litres": 40.0,
        "receiptUrl": "/receipts/908812334",
        "value": "40.00 л"
      }
    ]
  • Read member profile

    POST /v1/azs/members/profile osint

    Returns the signed-in driver card: phone, name, email confirmation, preferred fuel grade and bonus/promo notification flags.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • phone
    • name
    • email
    • emailConfirmed
    • photo
    • birthdate
    • gender
    • fuelType
    • promocode
    • mailing
    • notifyBonuses
    • notifyPromo
    • status
    • mailReceipt
    POST /v1/azs/members/profile HTTP/1.1
    Content-Type: application/json
    
    {}
    {
      "phone": "79001234567",
      "name": "Иван Петров",
      "email": "[email protected]",
      "emailConfirmed": true,
      "photo": null,
      "birthdate": 494640000,
      "gender": 1,
      "fuelType": {"id": 3, "name": "АИ-95", "color": "#E31E24", "default": true},
      "promocode": null,
      "mailing": true,
      "notifyBonuses": true,
      "notifyPromo": false,
      "status": 1,
      "mailReceipt": true
    }
  • List payment methods

    POST /v1/azs/payments/methods openbanking

    Lists saved cards and other tenders for a payment scope, including acquiring bank, terminal id and masked PAN.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • scope
    • acquiringBank
    • terminal
    • methods
    • type
    • name
    • hintText
    • cardId
    • cardPan
    • cardType
    • paymentToken
    • addCardButton
    POST /v1/azs/payments/methods HTTP/1.1
    Content-Type: application/json
    
    {
      "scope": 0
    }
    {
      "acquiringBank": 1,
      "terminal": "nm-term-12",
      "methods": [
        {
          "type": 1,
          "name": "Visa ••4242",
          "hintText": "",
          "cardId": "card-881",
          "cardPan": "4242",
          "cardType": 1,
          "icon": null,
          "cardTypeIcon": null,
          "paymentToken": null
        }
      ],
      "addCardButton": {"visible": true}
    }
  • Create fueling or charging order

    POST /v1/azs/orders/start openfinance

    Starts a pay-at-pump or EV-charging order (POST flag g=1). Response is the OrderStatusModel used to drive the payment sheet and pump authorization.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • orderTypes
    • objectType
    • objectId
    • boxId
    • serviceId
    • connectorId
    • sumToPay
    • liters
    • phone
    • email
    • paymentId
    • id
    • status
    • paymentType
    • amount
    • current
    • payment
    • bonusesPayment
    • paymentUrl
    • fuelPrice
    • errorCode
    POST /v1/azs/orders/start HTTP/1.1
    Content-Type: application/json
    
    {
      "orderTypes": 1,
      "objectType": 1,
      "objectId": 412,
      "boxId": 1,
      "serviceId": null,
      "connectorId": null,
      "sumToPay": 2499.6,
      "liters": 40.0,
      "phone": "79001234567",
      "email": "[email protected]"
    }
    {
      "paymentId": "pay-7781",
      "id": 99021,
      "status": 1,
      "paymentType": 1,
      "amount": 2499.6,
      "current": 0.0,
      "payment": 2499.6,
      "bonusesPayment": 0.0,
      "paymentUrl": "/pay/session/7781",
      "fuelPrice": 62.49,
      "message": null,
      "errorCode": null
    }
  • Poll order status

    POST /v1/azs/orders/live openfinance

    Polls a live fueling/charging order: litres dispensed (current), money captured (payment), bonus spend and error codes M101/M102/M103.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • id
    • paymentId
    • status
    • paymentType
    • amount
    • current
    • payment
    • bonusesPayment
    • paymentUrl
    • fuelPrice
    • message
    • errorCode
    POST /v1/azs/orders/live HTTP/1.1
    Content-Type: application/json
    
    {
      "id": 99021
    }
    {
      "paymentId": "pay-7781",
      "id": 99021,
      "status": 3,
      "paymentType": 1,
      "amount": 2499.6,
      "current": 18.4,
      "payment": 1149.8,
      "bonusesPayment": 0.0,
      "paymentUrl": null,
      "fuelPrice": 62.49,
      "message": null,
      "errorCode": null
    }
  • Read active fueling and charging orders

    POST /v1/azs/orders/active openfinance

    Returns the in-flight pump session and/or EV charging session the home screen banners while a column or connector is busy.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • fueling
    • charging
    • id
    • title
    • paymentType
    • objectId
    • createdDate
    • stationName
    • connectorType
    POST /v1/azs/orders/active HTTP/1.1
    Content-Type: application/json
    
    {}
    {
      "fueling": {
        "id": 99021,
        "title": "Колонка 3 · АИ-95",
        "paymentType": 1,
        "objectId": 412
      },
      "charging": {
        "id": null,
        "createdDate": null,
        "stationName": null,
        "connectorType": null
      }
    }
  • Get station-shop basket

    POST /v1/azs/shop/basket openfinance

    Returns the station-shop basket, optionally with a coupon applied: payable total, min-ticket, cashback and per-line price/discount/bonuses.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • couponId
    • payment
    • minPayment
    • cashback
    • items
    • goodId
    • title
    • price
    • totalPrice
    • discount
    • count
    • amount
    • bonuses
    • couponApplyingResult
    POST /v1/azs/shop/basket HTTP/1.1
    Content-Type: application/json
    
    {
      "couponId": 2201
    }
    {
      "payment": 489.0,
      "minPayment": 100.0,
      "cashback": 24,
      "items": [
        {
          "id": 11,
          "type": 1,
          "goodId": "g-441",
          "title": "Кофе 0.3",
          "price": 189.0,
          "totalPrice": 189.0,
          "discount": 0.0,
          "count": 1.0,
          "amount": 189.0,
          "cashback": 9,
          "bonuses": 0.0
        }
      ],
      "actions": [],
      "couponApplyingResult": null
    }
  • List loyalty coupons

    POST /v1/azs/loyalty/coupons openfinance

    Lists coupons for a CouponsFilter.scope (fuel vs shop): copy, face value, expiry and days-before-expiry used by the wallet and basket screens.

    Auth: Session token from POST /v1/azs/auth/token. Phone-session, SMS-confirm and token issue are unauthenticated.

    • scope
    • id
    • scopes
    • expiredDate
    • text
    • shortDescription
    • description
    • value
    • daysBeforeExpiring
    • showProgress
    POST /v1/azs/loyalty/coupons HTTP/1.1
    Content-Type: application/json
    
    {
      "scope": 1
    }
    [
      {
        "id": 2201,
        "scopes": 1,
        "expiredDate": 1772496000,
        "text": "-5 ₽/л АИ-95",
        "shortDescription": "На заправку",
        "description": "Скидка 5 ₽ на литр АИ-95",
        "value": "5",
        "daysBeforeExpiring": 12,
        "showProgress": false
      }
    ]

Data categories

  • fuel stations
  • fuel prices
  • loyalty bonuses
  • transactions
  • pay-at-pump orders
  • EV charging
  • shop baskets
  • payment methods
  • coupons
  • profiles

Where teams use this data

  • Fleet fuel-spend reconciliation

    A fleet back-office matches each driver's litres and amount against the station's live fuels.price and gasStationAddress so expense reports do not rely on paper receipts.

  • Loyalty bonus and overdraft monitor

    A CRM job reads bonuses, bonusLevel, currentAmount and overdraftLimit after fills, and flags wallets whose overdraftEnabled spend is about to hit the cap.

  • Pump and charging status board

    A station-ops screen polls active fueling (title, objectId) and charging (stationName, connectorType) orders plus OrderStatus current/payment so attendants see which column or EV plug is live.

  • Shop-basket coupon check

    A merchandising feed applies couponId to the basket and compares payment, minPayment, cashback and couponApplyingResult before a till promotion goes live.

Frequently asked questions

What does a station record include?

Each map pin carries id, name, number, latitude, longitude, address, live fuels with a per-grade price, EV connectors, workTimes, a closed flag and an optional yandexId. The detail card adds description, phone and hashedImages.

How is the loyalty wallet represented?

The loyalty wallet reports bonuses, bonusLevel, currentAmount, overdraftLimit, overdraftEnabled and an electro balance for charging, plus fortune-wheel credits and gift catalogs. Coupons add id, scopes, value and expiredDate; the ledger pages litres, amount and receiptUrl per fill.

How does pay-at-pump show up in the data?

The pump session returns columns (number, disabled, per-grade limit) and live fuels. POST /v1/azs/orders/start opens a session with objectId, boxId, sumToPay and liters; POST /v1/azs/orders/live polls current litres, payment, bonusesPayment and errorCode; POST /v1/azs/orders/active banners the in-flight fueling or charging order.

How do drivers sign in?

POST /v1/azs/auth/phone-session sends phone (and optional captchaToken / mobileId) and returns sessionId plus an optional Mobile ID hheUri. POST /v1/azs/auth/sms-confirm consumes the SMS or Mobile ID code and returns the UserModel; POST /v1/azs/auth/token issues the session token used on later calls.

Apps similar to АЗС Нефтьмагистраль

  • IndianOil ONE — Indian Oil's consumer app for locating petrol pumps, checking live fuel prices and earning XTRAREWARDS on fills — a fuel-retail loyalty wallet in another market.
  • ЛУКОЙЛ — Lukoil's official Russian station app for finding АЗС, paying at the pump and collecting the company's loyalty points.
  • АЗС Газпромнефть — Gazprom Neft's branded filling-station app with map search, fuel prices, in-app payment and the Нам по пути loyalty programme.
  • АЗС Роснефть — Rosneft's official app for its Russian station network: locator, fuel grades and the company's bonus card.
  • Яндекс Заправки — Yandex's multi-brand pay-at-pump app that lets drivers start a fill from the car at participating Russian stations.
  • Татнефть АЗС — Tatneft's station app for its Tatarstan and regional network, with prices, payment and a branded loyalty card.

Topics

  • AZS Neftmagistral API
  • Нефтьмагистраль data API
  • Russian fuel station prices
  • pay at pump bonuses
  • EV charging order status
  • loyalty coupons litres

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