Pochta Rossii (Russian Post) Data API
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
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/itemopendataReturns 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¤tDateTime=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/itemsopendataReturns 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/nearbyopendataPosts 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¤tDateTime=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/pickupopendataLists 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¤tDateTime=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/servicesopendataQuotes 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/orderopendataCreates 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/profileosintReads 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
- 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/profileopenfinanceReturns 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/cardsopenbankingLists 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/searchopenfinanceSearches 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/paymentopenbankingCreates 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/transferopenbankingCreates 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
- 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/c2copenbankingCreates 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/bookingopendataBooks 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