Airtel Data API: Recharge, Bills & Trains
Airtel: Recharge, Bank & Loans is Bharti Airtel Limited's consumer super-app for India, listed on Play as Airtel Thanks / MyAirtel. Prepaid subscribers browse packs and recharge from the phone; postpaid, broadband and DTH users pay bills in the same login; the home stack also opens Airtel Payments Bank wallet, UPI, loans and fixed deposits, plus IRCTC train tickets and a spam-caller check. Sign-in starts on a splash screen with an SMS one-time code sent to the mobile number, then the home screen tiles one card per line of business. It is the subscriber counterpart of Mitra, Airtel's retailer app for shopkeepers, and competes with Jio's MyJio and Vodafone Idea's Vi App across Indian telecom circles.
Thanks-linked prepaid packs stamp packId, dataBenefit and validity on each SI, while home cards expose siNumber and lob and postpaid rows carry outstandingDetails with amount and dueDate. Prepaid deduction history pages those rows as txBatches of transactions keyed by filterIndex, with pageInfo carrying nextPageNumber; the last-deduction header is a message plus cta uri. GPA insurance history lists txnList rows keyed by TRAN_ID and TRAN_AMT. Enter-number recents add billerCircle and billerCode; reminder rows key off reminderId; spam lookups return isSpam and callerName. Wallet onboarding verifies otpCode against feSessionId, then surfaces wallet and balance; UPI linking returns vpa, accountNumber and ifsc, and a collect posts beneVpa with upiTxnId. Train lists key off trainNumber, fromStnCode and toStnCode; booking history stamps pnr and grossFare; a PNR lookup adds pnrNumber, ticketId and totalCollectibleAmount; the rail profile holds irctcUserId. Fibre change-plan rows stamp dslId, landlineNumber and currentPlanPrice; acquisition checks return servicable with lobMessage; settings expose isWhatsAppReminder. Family-plan flags (familyParent, onFamilyPlan) and Thanks tier (thanksTier, isThanksCustomer) sit on the same session. UPI Autopay rows stamp umn, frequency and payer vpa; bank-id resolution returns customerId and feSessionId; min-KYC eligibility carries firstName, dob and pincode; station catalogs key off stationCode and stationName. Bharosa savings books stamp accNumber, currBalance and currentMonthMab on the same Payments Bank customer. Lending, bill-pay, circle-ops, fibre and rail stacks use those fields to reconcile recharge, outstanding bills, Payments Bank cash and tickets; openData Studio turns them into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Send login OTP for an MSISDN
POST
/v1/sessions/otposintStarts Airtel Thanks login for a subscriber MSISDN and returns the OTP challenge payload in the standard response envelope.
Auth: Unauthenticated. Device/line headers (x-line-msisdn, x-device-id, x-device-type, x-os, x-app-version, x-build-name); later calls add x-session-token and x-access-token.
- msisdn
- isVerified
- title
- subTitle
- callTitle
- errorText
POST /v1/sessions/otp HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-line-msisdn: 9876543210 {"msisdn": "9876543210"}{"data": {"isVerified": false, "title": "Verify OTP", "subTitle": "OTP sent to 9876543210", "callTitle": "Call me instead", "errorText": ""}, "respCode": 200, "requestId": "req-8f21a4"}Fetch home account cards and reminders
GET
/v1/home/cardsopendataReturns the signed-in home stack: one account card per SI, with family-plan flags and reminder message text.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn, x-device-id, x-os, x-app-version.
- headerTitle
- siNumber
- lob
- message
- title
- subTitle
- state
- familyParent
- onFamilyPlan
- accountCardSubData
GET /v1/home/cards HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": [{"headerTitle": "Prepaid", "siNumber": "9876543210", "lob": "PREPAID", "message": "2.4 GB left today", "title": "Thanks Silver", "subTitle": "Validity 12 Oct", "state": "ACTIVE", "familyParent": true, "onFamilyPlan": true, "accountCardSubData": []}]}Fetch Thanks app config
GET
/v1/home/configopendataLoads the home app config: Thanks membership flags plus the feature and payment bundles that gate home tiles.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn, x-device-id.
- thanksData
- isThanksLive
- isThanksCustomer
- isEligibleForThanks
- thanksTier
- thanksTitle
- theme
- featureConfig
- appConfig
- hummingBirdStackCardResponse
- digitalRechargeResponse
GET /v1/home/config HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"thanksData": {"isThanksLive": true, "isThanksCustomer": true, "isEligibleForThanks": true, "thanksTier": "SILVER", "thanksTitle": "Thanks Silver", "theme": "light"}, "featureConfig": {}, "appConfig": {}, "hummingBirdStackCardResponse": {}, "digitalRechargeResponse": {}}}Read subscriber profile details
GET
/v1/subscriber/profileosintReads the authenticated subscriber's SI number and emailId shown on the My Account profile screen.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- siNumber
- emailId
GET /v1/subscriber/profile HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"siNumber": "9876543210", "emailId": "[email protected]"}}List prepaid and postpaid packs
GET
/v1/catalog/tariff-packsopendataReturns browse-plan pack rows for prepaid and postpaid recharge and change-plan screens: amount, validity, volume and the data/call/sms benefits.
Auth: x-session-token and x-access-token from the OTP session. Query identifies the SI (siNumber, lob, circleId).
- packId
- amount
- paymentAmount
- mrp
- validity
- volume
- dataBenefit
- callBenefit
- smsBenefit
- siNumber
- circleId
- lob
- offerId
- benefits
- currentPlanId
- newPlanId
GET /v1/catalog/tariff-packs?siNumber=9876543210&lob=PREPAID&circleId=14 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"packs": [{"packId": "P18765", "amount": "299", "paymentAmount": "299", "mrp": 299, "validity": "28 days", "volume": "2 GB/day", "dataBenefit": "2 GB/day", "callBenefit": "Unlimited", "smsBenefit": "100 SMS/day", "siNumber": "9876543210", "circleId": "14", "lob": "PREPAID", "offerId": "OFF-299", "benefits": "Unlimited calls + 2 GB/day", "currentPlanId": "CUR-199", "newPlanId": "NEW-299"}]}}List recent prepaid recharges
GET
/v1/recharges/recentopendataReturns prior prepaid recharge packs for the browse-plan screen, with category titles and benefit maps.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- packs
- categoryTitleList
- packBenefitsMap
- packId
- amount
- validity
- dataBenefit
- siNumber
GET /v1/recharges/recent HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"packs": [{"packId": "P18765", "amount": "299", "validity": "28 days", "dataBenefit": "2 GB/day", "siNumber": "9876543210"}], "categoryTitleList": [{"title": "Last recharge"}], "packBenefitsMap": {}}}Read NDS circle and user type
GET
/v1/account/line-infoopendataReturns line info for the SI used before recharge: telecom circle, display name, user type and account flags.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- circle
- circlDisplayName
- userType
- corporateUser
- dataUser
- creationDate
- jk10
GET /v1/account/line-info HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"circle": "Delhi", "circlDisplayName": "Delhi NCR", "userType": "PREPAID", "corporateUser": false, "dataUser": true, "creationDate": 1694764800000, "jk10": false}}Read homes outstanding bill amount
GET
/v1/bills/outstandingopenfinanceReturns the homes/postpaid outstanding bill amount and dueDate rendered on Pay Bills, with row and footer detail.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- outstandingDetails
- amount
- dueDate
- headerDetails
- outerPayNow
- popupData
- rowDetails
- footerTitle
GET /v1/bills/outstanding HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"outstandingDetails": {"amount": 1849.0, "dueDate": "2026-10-21", "headerDetails": {}, "outerPayNow": {}, "popupData": {}}, "rowDetails": [], "footerTitle": []}}Verify Payments Bank wallet OTP
POST
/v1/wallet/otp/verifyopenbankingConfirms the min-KYC wallet OTP during Airtel Payments Bank onboarding.
Auth: x-session-token from the app session; body carries the wallet onboarding OTP fields (feSessionId, otpCode, verificationToken).
- feSessionId
- custType
- requestType
- partnerId
- otpCode
- verificationToken
- customerId
- dbtConsent
- languageId
- ver
- message
POST /v1/wallet/otp/verify HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-line-msisdn: 9876543210 {"feSessionId": "fes-9c11", "custType": "CUSTOMER", "requestType": "WALLET_ONBOARD", "partnerId": "THANKS", "otpCode": "482913", "verificationToken": "vt-55c17a", "customerId": "cust-1001", "dbtConsent": true, "languageId": "en", "ver": "v1"}{"data": {"message": "OTP verified"}}Read wallet status and balance
GET
/v1/wallet/statusopenbankingReads min-KYC wallet status after OTP: wallet handle and balance.
Auth: x-session-token from the app session plus x-line-msisdn; wallet calls also send x-transact-token.
- wallet
- balance
- additionalParams
GET /v1/wallet/status HTTP/1.1 x-session-token: sess-c91e2b x-transact-token: txn-9c11{"data": {"wallet": "9876543210", "balance": 1250.5, "additionalParams": {}}}Read Bharosa savings and sweep-out balances
GET
/v1/savings/{customerId}/balancesopenbankingReturns Bharosa savings balance detail plus the sweep-out deposit book for a Payments Bank customer.
Auth: x-session-token plus x-line-msisdn. Path substitutes the Payments Bank customerId from the bank-session call; mab=1 requests the monthly-average balance. No body.
- sba
- ssfb
- accNumber
- productCode
- title
- eodBalance
- status
- currBalance
- type
- custId
- bank
- natlId
- currentMonthMab
GET /v1/savings/cust-1001/balances?mab=1 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"sba": {"accNumber": "910012345678", "productCode": 101, "title": "Bharosa Savings", "eodBalance": 8420.5, "status": "ACTIVE", "currBalance": 8510.0, "type": "SBA", "custId": "cust-1001", "bank": "Airtel Payments Bank", "natlId": "XXXX1234", "currentMonthMab": 6100.0}, "ssfb": {"accNumber": "910098765432", "status": "ACTIVE", "currBalance": 2500.0, "custId": "cust-1001", "bank": "Airtel Payments Bank", "natlId": "XXXX1234", "eodBalance": 2500.0}}}List linked UPI accounts
GET
/v1/payments/upi/accountsopenfinanceReturns UPI accounts linked to the Payments Bank wallet — VPA rows and IFSC-linked accounts — plus active status.
Auth: x-session-token plus x-line-msisdn; UPI calls also send x-transact-token.
- status
- recentPayList
- vpa
- name
- amount
- remarks
- iconUrl
- upiAccountIfscDto
- bank
- accountNumber
- ifsc
GET /v1/payments/upi/accounts HTTP/1.1 x-session-token: sess-c91e2b x-transact-token: txn-9c11{"data": {"status": "ACTIVE", "recentPayList": [{"vpa": "9876543210@airtel", "name": "R Sharma", "amount": "500", "remarks": "Recharge", "iconUrl": ""}], "upiAccountIfscDto": [{"bank": "Airtel Payments Bank", "accountNumber": "910012345678", "ifsc": "AIRP0000001", "name": "R Sharma", "amount": "0", "remarks": ""}]}}Resolve operator and circle for a number
GET
/v1/lookup/operatorosintLooks up the operator circle for a recharge MSISDN in the enter-number flow.
Auth: x-session-token from the app session. Query is the target MSISDN being recharged (own line or another).
- enableNds
- walletResponse
- circle
GET /v1/lookup/operator?msisdn=9876543210 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"enableNds": true, "walletResponse": {"circle": "Delhi"}}}Load combined enter-number recents
GET
/v1/recharges/recipientsopendataLoads the prepaid enter-number screen with recent-recharge rows for any operator.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Takes the target MSISDN (empty = signed-in line).
- header
- subHeader
- title
- recentRecharges
- subTitle
- operatorIcon
- buttonText
- billerCircle
- billerCode
- billerName
- bsbCircleId
- circleAlias
- lob
- amount
GET /v1/recharges/recipients HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"header": "Recharge any number", "subHeader": "Airtel, Jio, Vi and more", "title": "Recent recharges", "recentRecharges": [{"title": "9876543210", "subTitle": "Airtel Delhi", "operatorIcon": "", "buttonText": "Recharge", "billerCircle": "Delhi", "billerCode": "ATLDL", "billerName": "Airtel", "bsbCircleId": "14", "circleAlias": "DL", "lob": "PREPAID", "amount": 299.0}]}}Check whether a caller number is spam
GET
/v1/calls/spam-checkosintChecks an incoming caller against the operator's spam graph and returns a JSON verdict.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Takes the caller number; returns a JSON verdict.
- isSpam
- callerName
- cnapWasThisSpam
GET /v1/calls/spam-check HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"isSpam": true, "callerName": "Promo", "cnapWasThisSpam": false}}Submit a UPI collect request
POST
/v1/payments/upi/collectopenfinanceCreates a UPI collect request against a payee VPA and returns its transaction status and expiry.
Auth: x-session-token plus x-line-msisdn; UPI calls also send x-transact-token.
- type
- amount
- remarks
- upiTxnStatus
- upiTxnId
- vpa
- name
- beneVpa
- beneName
- collectExpiry
- refId
- isMarkedAsSafe
- description
POST /v1/payments/upi/collect HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-transact-token: txn-9c11 {"type": "COLLECT", "amount": "500", "remarks": "Recharge", "vpa": "9876543210@airtel", "name": "Rahul Sharma", "beneVpa": "shop@okicici", "beneName": "Corner Shop", "description": "Prepaid pack"}{"data": {"type": "COLLECT", "amount": "500", "remarks": "Recharge", "upiTxnStatus": "PENDING", "upiTxnId": "AXId9f2a11", "vpa": "9876543210@airtel", "name": "R Sharma", "beneVpa": "shop@okicici", "beneName": "Shop", "collectExpiry": "2026-10-15T18:30+05:30", "refId": "ref-55c17a", "isMarkedAsSafe": false}}List home reminder cards
GET
/v1/home/remindersopendataReturns the home reminder list: expiry time, rank and reminder rows per SI and line of business.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Takes the SI.
- expiryTimeInMillis
- leftTitle
- rank
- dismissData
- reminders
- reminderId
- siNumber
- lob
- title
- subTitle
- offerText
- offerText2
- imgUrl
- isMandatory
- isPrimary
GET /v1/home/reminders HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"expiryTimeInMillis": 1697328000000, "leftTitle": "Reminders", "rank": 1, "dismissData": {}, "reminders": [{"reminderId": "rem-299", "siNumber": "9876543210", "lob": "PREPAID", "title": "Validity ending", "subTitle": "Recharge to keep 2 GB/day", "offerText": "Pack from ₹299", "offerText2": "", "imgUrl": "", "isMandatory": false, "isPrimary": true}]}}List trains between stations
GET
/v1/rail/trains/{fromStation}/{toStation}/{journeyDate}opendataReturns trains between two rail station codes on a journey date, with times, duration and distance.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- trainBtwnStnsList
- trainNumber
- trainName
- fromStnCode
- fromStnName
- toStnCode
- toStnName
- departureTime
- arrivalTime
- durationSec
- distance
- selectedQuota
- avlClasses
- quotaList
- stickers
GET /v1/rail/trains/NDLS/BCT/20261020 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"trainBtwnStnsList": [{"trainNumber": "12952", "trainName": "Mumbai Rajdhani", "fromStnCode": "NDLS", "fromStnName": "New Delhi", "toStnCode": "BCT", "toStnName": "Mumbai Central", "departureTime": "16:55", "arrivalTime": "08:35", "durationSec": 56400, "distance": "1384", "selectedQuota": "GN", "avlClasses": []}], "quotaList": [], "stickers": []}}List IRCTC booking history
GET
/v1/rail/bookingsopendataReturns the signed-in rail booking history rows: train, stations, class, fare and status label.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- bookingHistory
- pnr
- trainNumber
- trainName
- bookingFromStationCode
- bookingFromStationName
- bookingUpToStationCode
- bookingUpToStationName
- journeyClass
- departureTime
- passengerCount
- grossFare
- statusLabel
- prId
GET /v1/rail/bookings HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"bookingHistory": [{"pnr": "2613498210", "trainNumber": "12952", "trainName": "Mumbai Rajdhani", "bookingFromStationCode": "NDLS", "bookingFromStationName": "New Delhi", "bookingUpToStationCode": "BCT", "bookingUpToStationName": "Mumbai Central", "journeyClass": "3A", "departureTime": 1760964300000, "passengerCount": "2", "grossFare": 4560.0, "statusLabel": "Confirmed", "prId": "pr-8821"}]}}Read IRCTC customer profile
GET
/v1/rail/profileosintReads the linked rail customer profile, including recent passengers and booking limits.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- irctcUserId
- emailId
- mobileNumber
- maxBookingAllowed
- recentPassengers
- quickBookings
- recentInfants
GET /v1/rail/profile HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"irctcUserId": "airtel_ndls_user", "emailId": "[email protected]", "mobileNumber": "9876543210", "maxBookingAllowed": "6", "recentPassengers": [], "quickBookings": [], "recentInfants": []}}Check IRCTC PNR ticket details
GET
/v1/rail/pnr/{pnrNumber}opendataReturns booked ticket details for a PNR: train, class, fare charges, ticket identifiers and passenger list.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. PNR is the path parameter.
- purpose
- pnrNumber
- trainNumber
- trainName
- fromStationCode
- toStationCode
- journeyClass
- dateOfJourney
- boardingPoint
- grossFare
- gstCharge
- serviceCharge
- totalCollectibleAmount
- ticketId
- ticketUrl
- passengerList
GET /v1/rail/pnr/2613498210 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"purpose": {"pnrNumber": "2613498210", "trainNumber": "12952", "trainName": "Mumbai Rajdhani", "fromStationCode": "NDLS", "toStationCode": "BCT", "journeyClass": "3A", "dateOfJourney": "2026-10-20", "boardingPoint": "NDLS", "grossFare": 4560.0, "gstCharge": 205.2, "serviceCharge": 40.0, "totalCollectibleAmount": "4805.2", "ticketId": "tkt-8821", "ticketUrl": "https://example.invalid/tkt", "passengerList": []}}}Read WhatsApp reminder settings
GET
/v1/settings/remindersopendataReads the isWhatsAppReminder flag used by home bill and validity nudges.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn.
- isWhatsAppReminder
GET /v1/settings/reminders HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"isWhatsAppReminder": true}}Fetch broadband change-plan details
GET
/v1/broadband/plan-changeopendataReturns fibre/DSL change-plan details: current plan, DSL id, landline and prospective plans.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Query identifies the DSL account (dslId / landlineNumber).
- currentPlan
- accountId
- dslId
- landlineNumber
- packId
- arpCode
- currentPlanPrice
- endDate
- billPlanDto
- name
- title
- billPlanType
- technology
- price
- planID
- prospectivePlans
- currentPlanEligibility
GET /v1/broadband/plan-change?dslId=DSL-4411 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"currentPlan": {"accountId": "acc-4411", "dslId": "DSL-4411", "landlineNumber": "01123456789", "packId": "BB-999", "arpCode": "ARP-12", "currentPlanPrice": 999, "endDate": "2026-11-15", "billPlanDto": {"name": "200 Mbps", "title": "Fibre 200", "billPlanType": "UNLIMITED", "technology": "GPON", "price": "999", "planID": "PL-200"}}, "prospectivePlans": {}, "currentPlanEligibility": {}}}Check pin-code broadband serviceability
POST
/v1/coverage/pincodeopendataChecks whether a pin code can take a new broadband/DTH line and returns a serviceability message with a CTA.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Body takes pin-code and LOB strings.
- pinCode
- lob
- message
- messageColor
- servicable
- lobMessage
- lobMessageColor
- cta
POST /v1/coverage/pincode HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-line-msisdn: 9876543210 {"pinCode": "110001", "lob": "BROADBAND"}{"data": {"message": "Fibre available", "messageColor": "#008000", "servicable": true, "lobMessage": "Airtel Black fibre in this pin", "lobMessageColor": "#111111", "cta": {}}}List UPI Autopay mandates
GET
/v1/payments/mandatesopenfinanceReturns UPI Autopay mandate rows for the mandates screen: amount, frequency, validity window, status and payer/payee VPAs.
Auth: x-session-token plus x-line-msisdn; mandate calls also send x-transact-token. Listing pages by offset/limit; one mandate by UMN.
- mandateList
- amount
- remarks
- frequency
- startDate
- endDate
- amountRule
- umn
- txnid
- accountId
- displayStatus
- title
- subTitle
- isExecutable
- txnStatus
- isRevokable
- isModifiable
- isAcceptable
- custRefNo
- vpa
- name
- bankName
- accountNumber
- isVerifiedMerchant
GET /v1/payments/mandates?offset=0&limit=20 HTTP/1.1 x-session-token: sess-c91e2b x-transact-token: txn-9c11{"data": {"mandateList": [{"amount": 499.0, "remarks": "DTH pack", "frequency": "MONTHLY", "startDate": "2026-10-01", "endDate": "2027-09-30", "amountRule": "MAX", "umn": "UMN1234567890@airtel", "txnid": "AXImandate01", "accountId": "acc-9100", "displayStatus": "ACTIVE", "title": "Airtel DTH", "subTitle": "Autopay ₹499", "isExecutable": true, "txnStatus": 1, "isRevokable": true, "isModifiable": true, "isAcceptable": false, "custRefNo": "cref-4411", "beneInfo": {"vpa": "dth@airtel", "name": "Airtel DTH", "bankName": "Airtel Payments Bank", "accountNumber": "910012345678", "isVerifiedMerchant": true}}]}}Fetch Payments Bank customer and device id
POST
/v1/banking/sessionopenbankingResolves the Payments Bank customer and session ids used before wallet, UPI and debit-card calls on the same login.
Auth: x-session-token from the app session, plus x-line-msisdn. Body is a JSON device/session payload.
- messageText
- code
- errorCode
- feSessionId
- customerId
- deviceId
POST /v1/banking/session HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-line-msisdn: 9876543210 {"deviceId": "8f21a4c2-9b11-4e0a-a3d1-55c17a91f0e2"}{"data": {"messageText": "OK", "code": "0", "errorCode": "", "feSessionId": "fes-9c11", "customerId": "cust-1001", "deviceId": "8f21a4c2-…-55c17a91f0e2"}}Check min-KYC wallet eligibility
POST
/v1/wallet/eligibilityopenbankingReturns the min-KYC wallet-eligibility response: registration type plus customer details.
Auth: x-session-token from the app session, plus x-line-msisdn. Body carries partner/channel strings and eligibility fields.
- registrationType
- walletEligibilityConfigMap
- walletEligibilityCustomerDetails
- firstName
- middleName
- lastName
- pincode
- dob
POST /v1/wallet/eligibility HTTP/1.1 Content-Type: application/json x-session-token: sess-c91e2b x-line-msisdn: 9876543210 {"partnerId": "THANKS", "custType": "CUSTOMER"}{"data": {"registrationType": "MIN_KYC", "walletEligibilityConfigMap": {}, "walletEligibilityCustomerDetails": {"firstName": "Rahul", "middleName": "", "lastName": "Sharma", "email": "[email protected]", "pincode": "110001", "dob": "1992-04-18"}}}List IRCTC stations
GET
/v1/rail/stationsopendataReturns the rail station list — all stations plus popular ones — used before train lookup.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. No extra query; keyword search is a variant.
- stations
- popularStations
- id
- stationCode
- stationName
- city
- weight
- lastAccessedTime
GET /v1/rail/stations HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"stations": [{"id": "NDLS", "stationCode": "NDLS", "stationName": "New Delhi", "city": "Delhi", "weight": 9.8, "lastAccessedTime": 1760500000000}], "popularStations": [{"id": "BCT", "stationCode": "BCT", "stationName": "Mumbai Central", "city": "Mumbai", "weight": 9.5, "lastAccessedTime": 0}]}}List prepaid balance-deduction history
GET
/v1/prepaid/deductionsopendataPages prepaid balance deductions with balance header, filters and batched transactions.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Query: msisdn, lob, source, circle, pageIndex, filterIndex.
- balance
- title
- pageInfo
- nextPageNumber
- filter
- options
- id
- name
- isSelected
- txBatches
- transactions
- titleMap
- subtitle
- icon
- amount
- txDetail
- description
- status
- deductionDetail
- ctas
- date
- tag
- noData
GET /v1/prepaid/deductions?msisdn=9876543210&lob=PREPAID&source=THANKS&circle=Delhi&pageIndex=0&density=xxhdpi&siNumber=9876543210&filterIndex=ALL HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"balance": {"title": "₹48.20"}, "pageInfo": {"nextPageNumber": 1, "title": "Load more"}, "filter": {"title": "Filter", "options": [{"id": "ALL", "name": "All", "isSelected": true}]}, "txBatches": [{"title": "Today", "transactions": [{"title": "Data deduction", "titleMap": "", "subtitle": "2 GB pack", "icon": "", "amount": {"title": "-₹10"}, "txDetail": {"description": "Daily data pack", "status": {}, "deductionDetail": [], "ctas": []}, "date": "15 Oct 2026", "tag": {}}]}], "noData": null}}Read last prepaid balance-deduction header
GET
/v1/prepaid/deductions/latestopendataReturns the last-deduction message plus a CTA pointing at the full deduction list.
Auth: OTP session: x-session-token, x-access-token, plus x-line-msisdn. Query: circle, lob, siNumber, source, msisdn.
- message
- cta
- title
- uri
GET /v1/prepaid/deductions/latest?circle=Delhi&lob=PREPAID&siNumber=9876543210&source=THANKS&msisdn=9876543210 HTTP/1.1 x-session-token: sess-c91e2b x-line-msisdn: 9876543210{"data": {"message": "Last deduction ₹10 on 15 Oct", "cta": {"title": "View history", "uri": "myairtel://txnhistory"}}}List GPA insurance wallet transactions
GET
/v1/wallet/insurance/transactionsopenfinanceReturns group personal accident (GPA) cover history for the Payments Bank wallet.
Auth: x-session-token plus x-line-msisdn; wallet/bank calls also send x-transact-token.
- txnList
- TRAN_ID
- TRAN_DATE
- CR_DR_INDICATOR
- TRAN_PARTICULARS
- TRAN_AMT
- status
- color
- benVPA
- benName
- PAYMENT_STATUS
- MODE
- GST
- TDS
- SERVICE_CHARGE
GET /v1/wallet/insurance/transactions HTTP/1.1 x-session-token: sess-c91e2b x-transact-token: txn-9c11{"data": {"txnList": [{"TRAN_ID": "INS-4411", "TRAN_DATE": "15-10-2026 10:22:00", "CR_DR_INDICATOR": "CR", "TRAN_PARTICULARS": "GPA cover", "TRAN_AMT": "0", "status": "SUCCESS", "color": "#008000", "benVPA": "", "benName": "GPA", "PAYMENT_STATUS": "SUCCESS", "MODE": "account", "GST": "0", "TDS": "0", "SERVICE_CHARGE": "0"}]}}
Data categories
- profile
- packs
- recharges
- bills
- wallet
- upi
- thanks
- circle
- spam
- reminders
- irctc
- pnr
- broadband
- serviceability
- settings
- mandates
- kyc
- stations
- bharosa
- sba
- mab
- deductions
- insurance
Where teams use this data
Prepaid pack and recharge reconciliation
Nightly jobs join home siNumber/lob cards with packId, dataBenefit and validity rows, then match recent-recharge packs and prepaid txBatches (filterIndex, pageInfo nextPageNumber) so finance can see which Thanks-linked prepaid SIs actually took a pack and how balance was deducted.
Postpaid and homes bill-pay rails
A collections console reads OutstandingDetails amount with dueDate so agents quote the Pay Bills figure before the subscriber confirms, including familyParent lines on the same login.
Payments Bank wallet and UPI linking
Onboarding ops confirm wallet OTP via feSessionId/otpCode, then poll wallet/balance and linked UPI vpa/accountNumber/ifsc so min-KYC wallets and IFSC accounts stay in sync with the Thanks session. The same login then reads Bharosa SBA currBalance, eodBalance and currentMonthMab against accNumber/custId so savings-book cash matches the wallet handle.
IRCTC train search and PNR history
Travel ops join trainBtwnStnsList rows (trainNumber, fromStnCode, toStnCode) with bookingHistory pnr/grossFare, PNR status (pnrNumber, ticketId, totalCollectibleAmount) and the rail profile irctcUserId so a ticket booked inside the app can be reconciled against the subscriber MSISDN.
Broadband change-plan and pincode coverage
Fibre ops join currentPlan packId, dslId and currentPlanPrice with acquisition servicable/lobMessage so a Thanks login can tell whether a pin code can take a new broadband pack before the subscriber pays.
UPI Autopay mandate and wallet KYC
Collections ops join mandate umn/amount/frequency with payer vpa and Payments Bank customerId/feSessionId, then match walletEligibilityCustomerDetails firstName/dob so a Thanks login's Autopay rows stay tied to the min-KYC wallet on the same MSISDN.
Frequently asked questions
Which identifiers tie an Airtel line to packs and bills?
Home cards and pack rows key off siNumber plus lob (prepaid, postpaid, broadband). Packs add packId, circleId and offerId; homes bills add outstandingDetails.amount and dueDate.
What wallet and UPI fields does the Thanks login expose?
Wallet onboarding verifies otpCode with feSessionId, partnerId and verificationToken, then reads wallet and balance. Linked UPI accounts return vpa, bank, accountNumber and ifsc, with an active status flag.
How is Thanks membership represented?
App config returns thanksData with isThanksLive, isThanksCustomer, isEligibleForThanks, thanksTier and thanksTitle, which the home screen uses to theme the account cards.
What extra surfaces sit beside packs, bills and wallet?
Packs, bills and wallet are only part of it. Enter-number recents carry billerCircle, billerCode and lob for any MSISDN; spam checks return isSpam, callerName and cnapWasThisSpam; reminders key off reminderId; UPI spans linked vpa/accountNumber/ifsc, collect with upiTxnId and Autopay mandates with umn and frequency. The IRCTC stack lists trainNumber between fromStnCode and toStnCode, stamps booking pnr and grossFare, resolves pnrNumber with ticketId and totalCollectibleAmount, and stores irctcUserId plus stationCode catalogs. Broadband change-plan exposes dslId, landlineNumber and currentPlanPrice; pin-code checks return servicable and lobMessage; settings expose isWhatsAppReminder. Bharosa savings books return accNumber, currBalance, eodBalance and currentMonthMab; prepaid deduction history pages txBatches by filterIndex; GPA insurance lists txnList rows with TRAN_ID and TRAN_AMT.
Apps similar to Airtel: Recharge, Bank & Loans
- MyJio — MyJio is Reliance Jio's subscriber self-care app for India: prepaid recharge, postpaid bills, JioFiber broadband and JioMart on the same login.
- Vi App — Vi App is Vodafone Idea's official subscriber app for India, covering prepaid recharge, postpaid bills and Vi movies/TV alongside the mobile account.
- Mitra — Mitra is Bharti Airtel's retailer app for distributors and neighbourhood shops that sell Airtel recharges, the trade-side counterpart of the Thanks subscriber app.
- Paytm — Paytm is an Indian payments super-app whose wallet, UPI and bill-pay rails overlap the Airtel Payments Bank and UPI features inside Thanks.
Topics
- airtel thanks api
- airtel data api
- airtel packId
- airtel siNumber
- airtel outstandingDetails
- airtel payments bank wallet
- airtel upi vpa
- airtel recharge dataBenefit
- airtel irctc pnr
- airtel dslId
- airtel servicable
- airtel umn
- airtel customerId
- airtel bharosa currBalance
- airtel currentMonthMab
- airtel TRAN_AMT
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