Почта России icon

Pochta Rossii (Russian Post) Data API

Почта России · Transport

Pochta Rossii (Почта России) is the official mobile app of Russian Post, the national postal operator of the Russian Federation, whose post-office network reaches every region of the country. Customers track letters and parcels by barcode and see each item's movement history, sender and recipient, any amount due on delivery and how long it will be held at the branch, and they can also receive electronic registered letters (EZP) in the app. A map of nearby post offices and pickup points shows opening hours, Saturday and Sunday service, temporary closures, the current queue load and whether payment on receipt is accepted, and lets users book a visit slot or join the branch's electronic queue in advance. The shipping screens quote domestic postage between two postal codes by weight and parcel size, then let customers place and pay for the postage order online with a saved bank card, one-click payment or loyalty bonuses. Beyond mail, the app doubles as a payments hub: users look up and pay government charges from the state GIS GMP system, such as traffic fines found by driver's licence or vehicle registration certificate and tax debts found by taxpayer number (INN), and send person-to-person money transfers to a recipient named by full name and phone number. Accounts can be linked to Gosuslugi (ESIA), Russia's state-services login, and enabled for a simple electronic signature, QR-code identity and parcel pickup by phone number so items can be collected without a paper notice, alongside a bonus loyalty programme that tracks points received, spent and due to expire. It serves Russian households, online shoppers collecting marketplace orders and small sellers shipping by post, and competes with private carriers such as CDEK, Boxberry, 5Post and DPD and with multi-carrier trackers like GdePosylka.

Tracked mail items are the core record: each one, keyed by its barcode (queried as rpoId), carries itemType, mailTypeName, weight, sender, recipient and destinationAddress, a historyItems timeline of postal operations, the cash-on-delivery amount in forPayment, customsPaymentStatus for cross-border items, the branch hold window in storageTime and a showOfficeBookingButton flag, while the signed-in item list overlays ezpInfo for electronic registered letters.

Around those items sits a nationwide office catalog — postalCode, typeCode, latitude/longitude, workingHours, worksOnSaturdays, worksOnSundays, isTemporaryClosed, live currentLoad, bookingAvailable and electronicQueue — and slot bookings that return bookingId, reservationCode and the service window. Tariff rows price each postal product between indexFrom and indexTo by mass, length, width and height, and a placed postage order comes back with a fresh barcode, a paymentURL and oneClickStatus.

Government charges searched by vu (driver's licence), sts (vehicle certificate), uin or inn return supplierBillID, payee bank details, kbk and oktmo budget codes, offenseDate, the discountExpiry deadline and amountToPay; paid charges settle to paymentReference and transferNumber, and person-to-person transfers return a transferId. Saved cards expose visibleDigits, cardExpirationDate and paymentSystem, and the profile links hid, marketPlaceId, linkedEsia and pepStatus to a loyalty ledger of bonusBalance, burn and received versus spent for the current month and all time.

A 3PL last-mile exception desk can watch storageTime and showOfficeBookingButton and book a branch slot before a hold expires; a marketplace checkout can quote postage for a from/to index and weight, place the order and store the returned barcode; a treasury job can search fines and taxes, pay amountToPay and match paymentReference and transferNumber back to its ERP; and a loyalty CRM can join hid and marketPlaceId with bonusBalance and monthly received-versus-spent to reach members whose points are about to burn. openData Studio turns Russian Post's tracking, office, tariff, charge and loyalty records into callable open data for exactly those integrations.

Screenshots

  • Почта России screenshot 1
  • Почта России screenshot 2
  • Почта России screenshot 3
  • Почта России screenshot 4
  • Почта России screenshot 5
  • Почта России screenshot 6
  • Почта России screenshot 7
  • Почта России screenshot 8

API surface

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

  • Track parcel by RPO

    GET /v1/tracking/item opendata

    Returns a tracked item by rpoId: barcode, parties, destinationAddress, historyItems, customs/payment flags and storageTime.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • rpoId
    • currentDateTime
    • triggeredByUser
    • barcode
    • itemName
    • title
    • itemType
    • sender
    • recipient
    • destinationAddress
    • weight
    • forPayment
    • mailTypeName
    • complexCode
    • customsPaymentStatus
    • historyItems
    • storageTime
    • showOfficeBookingButton
    GET /v1/tracking/item?rpoId=RA123456789RU&currentDateTime=2026-09-27T12:00:00&triggeredByUser=true HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "barcode": "RA123456789RU",
      "itemName": "Documents",
      "title": "Letter",
      "itemType": "LETTER",
      "sender": "Ivan Petrov",
      "recipient": "Anna Smirnova",
      "destinationAddress": "Moscow, Tverskaya 1",
      "weight": 120,
      "forPayment": 0,
      "mailTypeName": "Registered letter",
      "complexCode": "GRP-1",
      "customsPaymentStatus": "NONE",
      "historyItems": [{
        "operationType": "ARRIVED",
        "operationPlace": "125167"
      }],
      "storageTime": 15,
      "showOfficeBookingButton": true
    }
  • List tracked items

    GET /v1/tracking/items opendata

    Returns the signed-in user's tracked items (with EZP overlay) filtered by filters[] at currentDateTime.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • currentDateTime
    • filters[]
    • barcode
    • itemName
    • title
    • sender
    • recipient
    • forPayment
    • ezpInfo
    GET /v1/tracking/items?currentDateTime=2026-09-27T12:00:00&filters[]=ACTIVE HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "items": [{
        "barcode": "RA123456789RU",
        "itemName": "Documents",
        "title": "Letter",
        "sender": "Ivan Petrov",
        "recipient": "Anna Smirnova",
        "forPayment": 0,
        "ezpInfo": null
      }]
    }
  • Find nearby post offices

    POST /v1/offices/nearby opendata

    Posts a geo search (latitude, longitude, searchRadius, top, type, hidePrivate) and returns nearby offices with hours, load and booking flags.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • searchRadius
    • top
    • type
    • address
    • geoObject
    • hidePrivate
    • latitude
    • longitude
    • filters[]
    • postalCode
    • distance
    • addressSource
    • typeId
    • typeCode
    • isClosed
    • isTemporaryClosed
    • worksOnSaturdays
    • worksOnSundays
    • regionSettlement
    • bookingAvailable
    • bookingHasEmptySlots
    • workingHours
    • currentLoad
    POST /v1/offices/nearby HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    Content-Type: application/x-www-form-urlencoded
    
    searchRadius=2000&top=20&type=ALL&latitude=55.7558&longitude=37.6173&hidePrivate=true&currentDateTime=2026-09-27T12:00:00
    {
      "offices": [{
        "postalCode": "125167",
        "latitude": 55.7881,
        "longitude": 37.5417,
        "distance": 410.2,
        "addressSource": "Leningradsky pr-t, 37",
        "typeId": 1,
        "typeCode": "OPS",
        "isClosed": false,
        "isTemporaryClosed": false,
        "worksOnSaturdays": true,
        "worksOnSundays": false,
        "regionSettlement": "Moscow",
        "bookingAvailable": true,
        "bookingHasEmptySlots": true,
        "workingHours": [{"weekDayId": 1}],
        "currentLoad": {"hour": 12, "load": 0.4}
      }]
    }
  • Nearby pickup points

    GET /v1/offices/pickup opendata

    Lists pickup offices near ukdIndex/lat-long, optionally filtered by paymentUponReceipt, including electronicQueue.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • ukdIndex
    • latitude
    • longitude
    • top
    • currentDateTime
    • paymentUponReceipt
    • postalCode
    • addressSource
    • typeCode
    • bookingAvailable
    • electronicQueue
    GET /v1/offices/pickup?ukdIndex=125167&latitude=55.7558&longitude=37.6173&top=10&currentDateTime=2026-09-27T12:00:00&paymentUponReceipt=false HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "offices": [{
        "postalCode": "125167",
        "latitude": 55.7881,
        "longitude": 37.5417,
        "addressSource": "Leningradsky pr-t, 37",
        "typeCode": "PVZ",
        "bookingAvailable": true,
        "electronicQueue": {"available": true}
      }]
    }
  • List shipping products and services

    GET /v1/tariffs/services opendata

    Quotes available domestic products/services between indexFrom and indexTo for a given mass and parcel dimensions.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • indexFrom
    • indexTo
    • addressFrom
    • addressTo
    • mass
    • length
    • width
    • height
    • product
    • way
    • weight
    • comment
    • maxWeight
    • needService
    • services
    • productOptions
    GET /v1/tariffs/services?indexFrom=101000&indexTo=190000&addressFrom=Moscow&addressTo=Saint%20Petersburg&mass=500&length=20&width=15&height=10 HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "products": [{
        "product": {
          "product": "PARCEL",
          "way": "GROUND",
          "weight": "UP_TO_2KG",
          "comment": "Parcel 1st class",
          "maxWeight": 2000.0,
          "needService": false,
          "services": ["SMS"],
          "productOptions": []
        },
        "services": {}
      }]
    }
  • Place a postage order

    POST /v1/tariffs/order opendata

    Creates a postage order (sender/recipient, mass, product, way) and returns barcode plus paymentURL / oneClickStatus.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • localDate
    • indexFrom
    • indexTo
    • mass
    • product
    • way
    • weight
    • options
    • service
    • sender
    • senderAddress
    • senderPhone
    • recipient
    • recipientAddress
    • recipientPhone
    • value
    • cashSumm
    • cardUid
    • bonus
    • withDiscount
    • barcode
    • paymentURL
    • successURL
    • failedURL
    • cancelURL
    • sharedUrl
    • paymentKind
    • oneClickStatus
    POST /v1/tariffs/order?localDate=2026-09-27T12:00:00 HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    Content-Type: application/x-www-form-urlencoded
    
    indexFrom=101000&indexTo=190000&mass=500&product=PARCEL&way=GROUND&weight=UP_TO_2KG&options=&service=NONE&sender=Ivan%20Petrov&senderAddress=Moscow&recipient=Anna%20Smirnova&recipientAddress=Saint%20Petersburg&recipientAddressType=DEFAULT&withDiscount=false
    {
      "barcode": "RA123456789RU",
      "paymentURL": "https://pay.example/checkout",
      "successURL": "https://pay.example/ok",
      "failedURL": "https://pay.example/fail",
      "cancelURL": "https://pay.example/cancel",
      "sharedUrl": "https://tracking.example/RA123456789RU",
      "paymentKind": "CARD",
      "oneClickStatus": "AVAILABLE"
    }
  • Get account profile

    GET /v1/account/profile osint

    Reads the signed-in profile: name, phone, email, hid, ESIA/PEP flags, validated address and nested bonusProgram.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • firstName
    • middleName
    • lastName
    • phone
    • email
    • hid
    • marketPlaceId
    • isRegistered
    • linkedEsia
    • pepStatus
    • qrIdentityEnabled
    • isPassportValid
    • parcelByPhoneStatus
    • addressGuid
    • index
    • displayAddress
    • addressHid
    • normalizedAddressNoIndex
    • validationStatus
    • bonusProgram
    • bonusBalance
    GET /v1/account/profile HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "firstName": "Ivan",
      "middleName": "Sergeevich",
      "lastName": "Petrov",
      "phone": "+79001234567",
      "email": "[email protected]",
      "hid": "hid-9f3a",
      "marketPlaceId": "cust-441",
      "isRegistered": true,
      "linkedEsia": true,
      "pepStatus": "CONFIRMED",
      "qrIdentityEnabled": true,
      "isPassportValid": true,
      "parcelByPhoneStatus": "ENABLED",
      "address": {
        "addressGuid": "guid-1",
        "index": "101000",
        "displayAddress": "Moscow, Tverskaya 1",
        "addressHid": "addr-hid",
        "normalizedAddressNoIndex": "Tverskaya 1",
        "validationStatus": "VALID"
      },
      "bonusProgram": {
        "state": "ACTIVE",
        "bonusBalance": 240.5
      }
    }
  • Bonus loyalty profile

    GET /v1/loyalty/profile openfinance

    Returns the full loyalty snapshot: bonusBalance, burn, currentMonthSummary/totalSummary received vs spent, and c2cProfTariffs.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • bonusProgram
    • state
    • bonusBalance
    • loyalty
    • burn
    • promotion
    • currentMonthSummary
    • totalSummary
    • received
    • spent
    • c2cProfTariffs
    GET /v1/loyalty/profile HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "bonusProgram": {
        "state": "ACTIVE",
        "bonusBalance": 240.5,
        "loyalty": {"level": "GOLD"},
        "burn": {"amount": 12.0}
      },
      "promotion": {"code": "SPRING"},
      "currentMonthSummary": {"received": 40.0, "spent": 15.0},
      "totalSummary": {"received": 800.0, "spent": 560.0},
      "c2cProfTariffs": []
    }
  • List saved payment cards

    GET /v1/wallet/cards openbanking

    Lists bound cards (id, visibleDigits, cardExpirationDate, paymentSystem) used for postage and GIS payments.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • cards
    • id
    • visibleDigits
    • cardExpirationDate
    • paymentSystem
    GET /v1/wallet/cards HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "cards": [{
        "id": "card-uid-1",
        "visibleDigits": "1234",
        "cardExpirationDate": "12/28",
        "paymentSystem": "MIR"
      }]
    }
  • Search GIS / FNS charges

    GET /v1/charges/search openfinance

    Searches GIS/FNS charges by driver's license (vu), vehicle certificate (sts), uin or inn and returns payer/payee, kbk, oktmo and amountToPay.

    Auth: Session token sent as a bearer-style auth header; charges live in their own payments namespace.

    • vu
    • sts
    • uin
    • inn
    • withEns
    • payerIdentifier
    • supplierBillID
    • billDate
    • payerName
    • payeeInn
    • payeeKpp
    • payeeName
    • payeeBankBik
    • payeeCorrespondentBankAccount
    • payeeBankName
    • kbk
    • oktmo
    • totalAmount
    • discount
    • discountExpiry
    • amountToPay
    • offensePlace
    • offenseDate
    • legalAct
    • purpose
    GET /v1/charges/search?vu=99AA123456&sts=77AB123456&uin=18840327140123456789&inn=7700000000&withEns=true HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "charges": [{
        "payerIdentifier": "18840327140123456789",
        "supplierBillID": "18840327140123456789",
        "billDate": "2026-03-01",
        "payerName": "PETROV IVAN",
        "payeeInn": "7700000000",
        "payeeKpp": "770001001",
        "payeeName": "GIBDD",
        "payeeBankBik": "044525000",
        "payeeCorrespondentBankAccount": "30101810400000000225",
        "payeeBankName": "Bank",
        "kbk": "18811630020016000140",
        "oktmo": "45348000",
        "totalAmount": 1500.0,
        "discount": 750.0,
        "discountExpiry": "2026-03-20",
        "amountToPay": 750.0,
        "offensePlace": "Moscow",
        "offenseDate": "2026-02-10",
        "legalAct": "12.9",
        "purpose": "Traffic fine"
      }]
    }
  • Create GIS payment

    POST /v1/charges/payment openbanking

    Creates a CPS payment for a GIS uin (optional cardUid) and returns paymentReference.

    Auth: Session token sent as a bearer-style auth header; charges live in their own payments namespace.

    • uin
    • cardUid
    • transferNumber
    • description
    • redirectApprove
    • redirectDecline
    • redirectCancel
    • paymentReference
    POST /v1/charges/payment HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    Content-Type: application/json
    
    {
      "uin": "18840327140123456789",
      "cardUid": "card-uid-1",
      "transferNumber": "TR-1001",
      "description": "GIS charge",
      "redirectApprove": "pochta://pay/ok",
      "redirectDecline": "pochta://pay/fail",
      "redirectCancel": "pochta://pay/cancel"
    }
    {
      "paymentReference": "pay-9f3a1c"
    }
  • Create GIS money transfer

    POST /v1/charges/transfer openbanking

    Creates a GIS transfer from TransferParams and returns transferNumber plus payer identity (passport, addressRegStr, mobilephone).

    Auth: Session token sent as a bearer-style auth header, plus client and channel headers on the transfer call.

    • idToken
    • accessToken
    • uin
    • email
    • purpose
    • transferSum
    • payerIdentifier
    • transferNumber
    • firstName
    • lastName
    • middleName
    • mobilephone
    • mobileVrfStu
    • birthDate
    • passportSeries
    • passportNumber
    • passportIssueDate
    • passportIssueId
    • passportIssuedBy
    • addressRegStr
    • addressRegZipCode
    POST /v1/charges/transfer HTTP/1.1
    Authorization: Bearer <session-token>
    X-Client: ANDROID
    X-Channel-Flag: true
    Content-Type: application/json
    
    {
      "idToken": "<id-token>",
      "accessToken": "<access-token>",
      "uin": "18840327140123456789",
      "email": "[email protected]",
      "purpose": "Transfer",
      "transferSum": 1500.0,
      "payerIdentifier": "18840327140123456789"
    }
    {
      "transferNumber": "TR-1001",
      "firstName": "Ivan",
      "lastName": "Petrov",
      "middleName": "Sergeevich",
      "mobilephone": "+79001234567",
      "mobileVrfStu": "VERIFIED",
      "birthDate": "1990-01-15",
      "passportSeries": "4500",
      "passportNumber": "123456",
      "passportIssueDate": "2015-06-01",
      "passportIssueId": "770-001",
      "passportIssuedBy": "OUFMS",
      "addressRegStr": "Moscow, Tverskaya 1",
      "addressRegZipCode": "101000"
    }
  • Create C2C money transfer

    POST /v1/transfers/c2c openbanking

    Creates a person-to-person transfer (senderId, amount, recipient FIO/phone) and returns transferId; pay step later yields paymentLink.

    Auth: Account-id header carrying the sender's profile hid, inside the transfers namespace.

    • senderId
    • amount
    • password
    • message
    • senderEmail
    • senderMobilePhone
    • countryCode
    • phoneNumber
    • recipient
    • fullName
    • firstName
    • lastName
    • middleName
    • mobilePhone
    • transferId
    POST /v1/transfers/c2c HTTP/1.1
    X-Account-Id: hid-9f3a
    Content-Type: application/json
    
    {
      "senderId": 441001,
      "amount": 5000,
      "password": "secret",
      "message": "For postage",
      "senderEmail": "[email protected]",
      "senderMobilePhone": {"countryCode": "+7", "phoneNumber": "9001234567"},
      "recipient": {
        "fullName": "Anna Smirnova",
        "firstName": "Anna",
        "lastName": "Smirnova",
        "middleName": "Igorevna",
        "mobilePhone": {"countryCode": "+7", "phoneNumber": "9007654321"}
      }
    }
    {
      "transferId": 9001001
    }
  • Book a post-office visit

    POST /v1/offices/booking opendata

    Books an OPS slot for a serviceId at postalCode and returns bookingId, reservationCode and window.

    Auth: Session token sent as a bearer-style auth header, plus an API-version header.

    • postalCode
    • slotId
    • serviceId
    • itemsCount
    • bookingId
    • reservationCode
    • createdTime
    • window
    • viaElectronicQueue
    • slot
    • serviceParameters
    POST /v1/offices/booking?postalCode=125167&slotId=slot-42&serviceId=3&itemsCount=1 HTTP/1.1
    Authorization: Bearer <session-token>
    X-Api-Version: 9
    {
      "bookingId": "bkg-7781",
      "postalCode": "125167",
      "reservationCode": "A104",
      "createdTime": "2026-09-27T12:05:00",
      "window": 4,
      "viaElectronicQueue": false,
      "slot": {"slotId": "slot-42"},
      "serviceParameters": [{"serviceId": 3, "itemsCount": 1}]
    }

Data categories

  • parcel-tracking
  • post-offices
  • shipping-tariffs
  • payments
  • transfers
  • loyalty
  • identity

Where teams use this data

  • Last-mile exception desk

    A 3PL ops bot watches tracked items for storageTime and showOfficeBookingButton, then books an OPS slot so recipients pick up before the hold expires.

  • Postage quoting engine

    A marketplace checkout pulls domestic product/service rows for a from/to index and mass, then places the postage order and stores the returned barcode.

  • GIS bill-pay reconciliation

    A treasury job searches charges by vu/sts/uin, pays amountToPay, and matches paymentReference plus transferNumber back to the ERP.

  • Loyalty CRM overlay

    A CRM joins hid and marketPlaceId from the profile with bonusBalance / monthly received-vs-spent to target burn-risk members.

Frequently asked questions

How is the Pochta Rossii data API structured?

It is a versioned, token-authenticated JSON API. Lookups are plain GETs with query parameters; searches and order/payment creation are POSTs, some form-encoded and some JSON. Tracking, offices, tariffs, account, cards, charges and transfers each live in their own path namespace.

How is the session authenticated?

Calls send the session token in a bearer-style auth header plus an API-version header. Sensitive payment calls add client and channel headers, and the person-to-person transfer call identifies the sender with an account-id header taken from the profile.

Can I look up a parcel by barcode?

Yes. The tracking call takes rpoId (the tracking barcode) plus currentDateTime and triggeredByUser, and returns sender, recipient, destinationAddress, historyItems, forPayment and storageTime, enough to render the full delivery timeline and any amount due.

Does the API include payments and transfers?

Yes. Government charges can be searched by driver-license (vu), vehicle-certificate (sts), bill (uin) or tax (inn) identifiers and then paid; the payment call returns a paymentReference. Person-to-person transfer creation returns a transferId, and a later pay call returns paymentLink.

Apps similar to Почта России

  • СДЭК (CDEK) — CDEK is a Russian logistics company whose service tracks parcels by waybill number and delivers to a nationwide network of pickup points, making it the most common courier alternative to the post office.
  • Boxberry — Boxberry is a Russian delivery service focused on online-store orders with its own pickup points, and it has become part of Yandex.
  • ГдеПосылка (GdePosylka) — GdePosylka is a parcel-tracking app that follows shipments from Russian Post and many other carriers by track number in a single list.
  • 5Post — 5Post is a Russian delivery service whose parcels can be collected at store checkout counters and tracked online by track number.
  • DPD в России — DPD is a transport company running courier parcel delivery and cargo shipping across Russia, with shipments traceable online by order number.
  • UPS — UPS is an international carrier whose mobile app tracks packages and freight, creates shipments and locates nearby service points, covering cross-border shipping needs.

Topics

  • pochta rossii api
  • russian post tracking api
  • почта россии
  • parcel tracking api
  • post office locator api
  • shipping tariff api
  • gis charge payment
  • c2c transfer api
  • mobile json api

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