Mitra retailer data API: wallet, recharge and ledger endpoints
Mitra is Bharti Airtel's retailer app for India's prepaid mobile trade, used by the distributors and neighborhood shopkeepers who sell Airtel recharges across its telecom circles. Retailers sign in with their mobile number and an SMS OTP, then work from a home screen built around their LAPU (Local Area Prepaid Unit) e-recharge wallet and its low-balance warning: they top up customers' prepaid numbers with Airtel R-offers confirmed by an mPIN, activate new connections, and check each sale on a My Transactions screen that can be searched by customer number, agent and date range. An income dashboard shows day-to-date and month-to-date earnings split by product line — LAPU income, R-offer commission, one-time-fee (OTF) commission and scheme payouts — while a LAPU cashbook lists every credit and debit day by day with the running balance before and after it. Each retailer is tied to an Airtel field-sales executive who handles wallet refills, and the app competes for the same shop counters as Jio's JioPOS Lite, Vodafone Idea's Smart-Connect and multi-operator agent platforms such as Spice Money and PayNearby.
R-offer recharges rung up at a Mitra counter each leave behind a chain of linked retail-finance records. A recharge carries the subscriber's customerNumber, the chosen offerId and price, the gst component, its rechargeType and connectionType, the retailer's retailerCircle and the shop's latitude/longitude, and comes back with a transactionId, a refTransactionNumber, the post-sale accountBalance and the fseNumber of the field-sales executive who services that retailer.
Around it sit the wallet and earnings records: the wallet pairs currentBalance with a low-balance thresholdBalance, and earnings arrive as day- and month-to-date totals (totalFtd, totalMtd) broken into lapuIncomeResponse, rOfferCommissionResponse, otfCommissionResponse and schemeRelatedCommissionResponses. Recharge history pages each sale with totalAmount, customerMobileNumber, transactionStatus, transactionDateTime and the selling agentName, and the LAPU cashbook groups ledgerTransactions by date, each row carrying transactionType, senderMsisdn, senderCircle, preBalance, postBalance and an isCredit flag. Retailer identity is keyed on the mobile number in userIdentifier, so wallet, earnings, history and ledger all join on the same retailer number.
That makes the records directly usable in distributor and partner-finance tooling: an ERP can reconcile the LAPU wallet nightly by matching currentBalance against the last ledger postBalance and flag missing credits before the shop opens; a commission payout dashboard can compare FTD and MTD earnings by product line using lapuIncomeMtd and rOfferCommissionResponse.mtd; a support desk can settle a subscriber's failed-top-up claim by searching the customer number and a startDate/endDate window and joining on transactionId; and a restock alert can ping the field-sales executive when currentBalance drops under thresholdBalance. openData Studio makes Mitra's retailer wallet, commission, recharge and LAPU ledger records callable open data for those integrations.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Verify retailer OTP and issue session
POST
/v1/auth/otp/verifyosintConfirms the SMS OTP for a retailer MSISDN and returns the session token / user token pair attached to later wallet, income, recharge and ledger requests.
Auth: No prior session. Body carries the retailer MSISDN, the SMS OTP and the otpToken from the send-OTP step, plus deviceId / application / appVersion. The returned session token and user token are attached to every later signed-in call.
- action
- userIdentifier
- otp
- otpToken
- isOtpThirdParty
- deviceId
- application
- appVersion
- userAgent
- result
- userToken
- tokenId
- status
- message
POST /v1/auth/otp/verify HTTP/1.1 Content-Type: application/json { "action": "consumeAPI", "userIdentifier": "9876543210", "otp": "482913", "otpToken": "otp-tok-9f2a", "isOtpThirdParty": "0", "deviceId": "a1b2c3d4e5f6", "application": "Retailer", "appVersion": "635", "userAgent": "android" }{ "result": { "deviceId": "a1b2c3d4e5f6", "userIdentifier": "9876543210", "userToken": "usr-tok-7c11", "tokenId": "sess-4e90ab" }, "status": { "status": "SUCCESS", "message": "OTP verified" } }Fetch retailer wallet balance
POST
/v1/retailers/walletopenbankingReturns the retailer's live prepaid/LAPU wallet balance and the low-balance threshold shown on the Mitra home screen.
Auth: Session token from the OTP verify call, sent with the retailer MSISDN and deviceId in the session envelope.
- token
- currentBalance
- thresholdBalance
- status
- message
POST /v1/retailers/wallet HTTP/1.1 Content-Type: application/json { "action": "consumeAPI", "userIdentifier": "9876543210", "tokenID": "sess-4e90ab", "deviceId": "a1b2c3d4e5f6", "application": "Retailer", "appVersion": "635", "userAgent": "android", "additionalRequestParams": { "token": "sess-4e90ab" } }{ "responseObject": { "currentBalance": 18450.75, "thresholdBalance": 500.0 }, "status": { "status": "SUCCESS", "message": "Balance fetched" } }Fetch retailer income and commissions
POST
/v1/retailers/earningsopenfinanceReturns month-to-date and day-to-date retailer earnings split across LAPU income, R-offer commission, OTF commission and scheme-related payouts.
Auth: Session token from the OTP verify call, sent with the retailer MSISDN and deviceId in the session envelope.
- token
- totalMtd
- totalFtd
- lapuIncomeResponse
- lapuIncomeMtd
- lapuIncomeFtd
- lapuIncome
- rOfferCommissionResponse
- mtd
- ftd
- amount
- transactionId
- date
- otfCommissionResponse
- schemeRelatedCommissionResponses
POST /v1/retailers/earnings HTTP/1.1 Content-Type: application/json { "action": "consumeAPI", "userIdentifier": "9876543210", "tokenID": "sess-4e90ab", "deviceId": "a1b2c3d4e5f6", "application": "Retailer", "appVersion": "635", "additionalRequestParams": { "token": "sess-4e90ab" } }{ "responseObject": { "totalMtd": 12840.5, "totalFtd": 960.0, "lapuIncomeResponse": { "lapuIncomeMtd": 4100.0, "lapuIncomeFtd": 250.0, "lapuIncome": 4100.0 }, "rOfferCommissionResponse": { "mtd": 6200.0, "ftd": 480.0, "amount": 6200.0, "transactionId": 88421109, "date": "2026-09-26" }, "otfCommissionResponse": { "mtd": 2540.5, "ftd": 230.0 }, "schemeRelatedCommissionResponses": [] }, "status": { "status": "SUCCESS", "message": "OK" } }List historical recharge transactions
POST
/v1/transactions/searchopenbankingPages the retailer's recharge history with amount, customer MSISDN, agent, timestamp and success/failure status used by the My Transactions screen.
Auth: Session token from the OTP verify call. Body also carries pageNumber, size, optional customerNumber / agentNumber and a startDate-endDate window.
- token
- pageNumber
- size
- customerNumber
- startDate
- endDate
- agentNumber
- statusCode
- statusDesc
- isWLREnabled
- totalSize
- lastFiveTransactionDetails
- totalAmount
- customerMobileNumber
- transactionId
- transactionStatus
- transactionDateTime
- wlrtransaction
- agentName
- agentNumber
POST /v1/transactions/search HTTP/1.1 Content-Type: application/json { "token": "sess-4e90ab", "pageNumber": "1", "size": "20", "customerNumber": "9810012345", "startDate": "2026-09-01", "endDate": "2026-09-26", "agentNumber": "9890011122" }{ "responseObject": { "statusCode": "200", "statusDesc": "SUCCESS", "isWLREnabled": "Y", "totalSize": 2, "lastFiveTransactionDetails": [ { "totalAmount": "299.00", "customerMobileNumber": "9810012345", "transactionId": "TXN88421109", "transactionStatus": "SUCCESS", "transactionDateTime": "2026-09-26 10:14:03", "wlrtransaction": false, "wlrtransactionStatus": 0, "agentName": "Ramesh", "agentNumber": "9890011122" } ], "transactionStatusResponses": [] } }Subscribe R-offer recharge
POST
/v1/recharge/subscribeopenfinanceExecutes a prepaid R-offer recharge against the retailer wallet and returns the new accountBalance plus transactionId after mPIN confirmation.
Auth: Session token from the OTP verify call. Body also requires the retailer mPIN plus retailerNumber / customerNumber / offerId / price.
- retailerNumber
- customerNumber
- offerId
- price
- mpin
- rechargeType
- channelId
- retailerCircle
- connectionType
- gst
- latitude
- longitude
- httpStatus
- responseMessage
- transactionId
- refTransactionNumber
- chillarAmount
- gstText
- accountBalance
- fseNumber
POST /v1/recharge/subscribe HTTP/1.1 Content-Type: application/json { "retailerNumber": "9876543210", "customerNumber": "9810012345", "offerId": "ROFFER_299", "price": "299", "mpin": "2580", "rechargeType": "PREPAID", "channelId": "MITRA", "retailerCircle": "DL", "connectionType": "PREPAID", "gst": "53.82", "latitude": "28.6139", "longitude": "77.2090" }{ "httpStatus": "200", "status": { "status": "SUCCESS", "message": "Recharge successful" }, "responseObject": { "responseMessage": "Recharge of INR 299 successful", "transactionId": "TXN88421109", "refTransactionNumber": "REF772190", "chillarAmount": "0", "gstText": "Incl. GST", "retailerAccountBalanceAndFSEDetails": { "accountBalance": "18151.75", "fseNumber": "FSE44021" } } }Fetch LAPU ledger transactions
POST
/v1/ledger/entriesopenbankingReturns date-grouped LAPU ledger rows with amount, sender MSISDN, preBalance/postBalance and credit/debit flag for the retailer cashbook.
Auth: Session token from the OTP verify call. Filter is the retailer MSISDN plus optional startDate/endDate and transaction type; pageParams carry pageState/pageOffset.
- filterParams
- retailerMsisdn
- startDate
- endDate
- queryParam
- parentTransactionTypeId
- pageParams
- pageState
- pageOffset
- ledgerTransactions
- transactionId
- amount
- channel
- senderCircle
- senderMsisdn
- transactionDateTime
- transactionType
- retailerCircle
- preBalance
- postBalance
- isCredit
- note
- status
POST /v1/ledger/entries HTTP/1.1 Content-Type: application/json { "filterParams": { "retailerMsisdn": "9876543210", "startDate": "2026-09-01", "endDate": "2026-09-26", "queryParam": "", "parentTransactionTypeId": "RECHARGE" }, "pageParams": { "pageState": null, "pageOffset": 0 } }{ "httpStatus": "200", "status": { "status": "SUCCESS", "message": "OK" }, "body": { "pageState": "eyJvIjoxMH0", "ledgerTransactions": { "2026-09-26": [ { "transactionId": "LED99102", "amount": "299.00", "channel": "MITRA", "senderCircle": "DL", "senderMsisdn": "9810012345", "transactionDateTime": "2026-09-26 10:14:03", "transactionType": "RECHARGE", "retailerMsisdn": "9876543210", "retailerCircle": "DL", "status": "SUCCESS", "preBalance": "18450.75", "postBalance": "18151.75", "isCredit": false, "note": "R-offer 299" } ] } } }
Data categories
- retailer identity
- wallet balances
- commissions
- recharge transactions
- LAPU ledger
Where teams use this data
Nightly LAPU wallet reconciliation
Pull currentBalance from the wallet call and match it against the last postBalance on the ledger entries feed so an ERP can flag missing credits before the shop opens.
Commission payout dashboard
Read totalMtd, lapuIncomeMtd and rOfferCommissionResponse.mtd from the earnings call to feed a partner-finance view of FTD versus MTD earnings by product line.
Recharge dispute lookup
Query the transactions search by customerNumber and startDate/endDate, then join transactionId to recharge subscribe results when a subscriber claims a failed top-up.
Low-balance restock alert
Compare currentBalance with thresholdBalance after each recharge subscribe call and notify the field-sales agent (fseNumber) when the retailer wallet needs a refill.
Frequently asked questions
What session fields does Mitra send after login?
The OTP verify call returns a session token and user token for the retailer MSISDN (userIdentifier). Later calls wrap those with a device id, application tag and app version in one session envelope.
Which endpoint shows the retailer wallet?
POST /v1/retailers/wallet returns currentBalance and thresholdBalance. After a recharge, the subscribe call also echoes accountBalance plus the field-sales agent id (fseNumber).
How are commissions broken down?
POST /v1/retailers/earnings returns day-to-date and month-to-date totals plus nested LAPU income, offer-commission and one-time-fee commission objects for each product line.
Where is the LAPU cashbook?
POST /v1/ledger/entries pages date-grouped rows with amount, sender MSISDN, preBalance, postBalance and a credit/debit flag for the retailer's cashbook.
Apps similar to Mitra
- JioPOS Lite — JioPOS Lite is Reliance Jio's partner app that lets individuals onboard as Jio partners and recharge Jio customers from a wallet, with an earnings dashboard and passbook.
- Smart-Connect — Smart-Connect is Vodafone Idea's retailer app for Vi trade partners, used for recharges, activations and related retailer programs on the Vi network.
- Spice Money — Spice Money's Adhikari agent app offers instant mobile recharge for all operators along with bill payments, cash withdrawal and money transfer from a shop.
- Paytm — Paytm is an Indian payments app that also sells prepaid mobile recharge and postpaid bill payments for Airtel, Jio, Vi, BSNL and MTNL.
- PayNearby — PayNearby is a kirana-retailer platform for mobile and DTH recharge, utility bills and Aadhaar-linked cash services from a local shop.
Topics
- Mitra API
- Airtel retailer API
- LAPU ledger
- retailer wallet balance
- R-offer recharge
- Mitra commissions
- airtel mitra endpoints
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