Pochta Rossii (Russian Post) Data API
Pochta Rossii (Почта России) signs into a versioned, token-authenticated JSON API. Parcel history is GET /v1/tracking/item; nearby branches post to POST /v1/offices/nearby; tariffs quote at GET /v1/tariffs/services and order at POST /v1/tariffs/order. Government charges live under /v1/charges/ and person-to-person transfers under /v1/transfers/.
Pochta Rossii is Russian Post's customer app for tracking mail, locating branches, quoting postage, paying government charges and sending person-to-person transfers. Signed-in traffic uses a versioned, token-authenticated JSON API: parcel records keyed by rpoId (barcode, sender, recipient, historyItems, forPayment), a geo post-office catalog (postalCode, workingHours, bookingAvailable), domestic and foreign tariff rows, a user profile (firstName, phone, hid, linkedEsia, bonusProgram), saved cards, government-charge search by vu/sts/uin/inn, and C2C create/pay that returns paymentLink and approveId.
Screenshots
API surface
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's parcel tracking screenfield set mirrors the tracking detail card shown for a barcode lookup
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's tracked-items inboxfilter set matches the active/archive tabs in the tracking list
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
Illustrative example reconstructed from the app's interface — not a live capture.
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} }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's branch map and list flowresult shape mirrors the office cards with hours, load and slot-booking badges
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
Illustrative example reconstructed from the app's interface — not a live capture.
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} }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's pickup-point selectorresponse shape matches the pickup list with queue availability
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
Illustrative example reconstructed from the app's interface — not a live capture.
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": {} }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's postage calculator flowproduct rows mirror the quote screen for a from/to route and weight
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's send-a-parcel checkoutresponse mirrors the payment handoff shown after order creation
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 } }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's account screenfield set matches the profile plus validated-address and loyalty summary blocks
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
Illustrative example reconstructed from the app's interface — not a live capture.
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": [] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's loyalty and bonuses sectiontotals mirror the monthly and lifetime received-vs-spent charts
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's saved-cards wallet screencard rows mirror the masked selector shown at payment time
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's fines and charges search flowcharge rows mirror the bill detail shown before payment
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's charge payment checkoutreference id matches the receipt shown after a successful payment
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
Illustrative example reconstructed from the app's interface — not a live capture.
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" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's government-payment transfer flowidentity block mirrors the payer confirmation shown before submit
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
Illustrative example reconstructed from the app's interface — not a live capture.
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 }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's person-to-person transfer composerresponse id matches the transfer receipt shown after creation
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
Illustrative example reconstructed from the app's interface — not a live capture.
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}] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
reconstructed from the app's visit-booking flowconfirmation shape mirrors the ticket shown with reservation code and window
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 and approveId.
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.