Airtel: Recharge, Bank & Loans icon

Airtel Data API: Recharge, Bills & Trains

Bharti Airtel Limited · Telecom

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

  • Airtel: Recharge, Bank & Loans screenshot 1
  • Airtel: Recharge, Bank & Loans screenshot 2
  • Airtel: Recharge, Bank & Loans screenshot 3
  • Airtel: Recharge, Bank & Loans screenshot 4
  • Airtel: Recharge, Bank & Loans screenshot 5

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/otp osint

    Starts 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/cards opendata

    Returns 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/config opendata

    Loads 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/profile osint

    Reads 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-packs opendata

    Returns 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/recent opendata

    Returns 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-info opendata

    Returns 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/outstanding openfinance

    Returns 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/verify openbanking

    Confirms 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/status openbanking

    Reads 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}/balances openbanking

    Returns 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/accounts openfinance

    Returns 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/operator osint

    Looks 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/recipients opendata

    Loads 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-check osint

    Checks 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/collect openfinance

    Creates 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/reminders opendata

    Returns 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} opendata

    Returns 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/bookings opendata

    Returns 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/profile osint

    Reads 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} opendata

    Returns 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/reminders opendata

    Reads 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-change opendata

    Returns 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/pincode opendata

    Checks 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/mandates openfinance

    Returns 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/session openbanking

    Resolves 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/eligibility openbanking

    Returns 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
    • email
    • 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/stations opendata

    Returns 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/deductions opendata

    Pages 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/latest opendata

    Returns 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/transactions openfinance

    Returns 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

Get a quote