Freecharge wallet, UPI and bill-pay data API
Freecharge UPI & Bill Payments is FreechargeBiz's consumer app — an Axis Bank subsidiary that absorbed the Snapdeal-born wallet after Axis acquired Freecharge in 2017. Indians use it to send and receive UPI, scan a merchant QR, pay electricity and other BBPS bills, recharge a prepaid mobile, hold a prepaid Freecharge wallet, keep a UPI Lite balance for small taps, and buy or sell digital gold. Sign-in is mobile OTP; a UPI PIN on a linked bank account authorises sends, and Autopay mandates cover recurring merchants. The product is India-only and sits next to PhonePe, Google Pay and Paytm for everyday rupee payments, while Axis Mobile remains the group's full-service banking app.
Prepaid wallet buckets split CREDITABLE_BALANCE from DEBITABLE_BALANCE and VOUCHER_BALANCE on the Axis-backed purse, while a linked UPI enquiry returns availableBalance and outstandingBalance for the chosen VPA. Collect and P2P writes stamp an NPCI rrn; bill lookups return billAmount, billerId and billFetchId for BBPS operators; UPI Lite activation hands back an lrn; digital gold holdings expose goldBalance grams next to cumulativeGoldBalanceInRs.
Lenders and personal-finance apps can net wallet cash against bank and gold in one India session; billers can confirm fetch-and-pay status; merchant analytics can separate PIN-less Lite taps from full UPI sends. openData Studio turns those fields 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.
Read prepaid wallet balance
GET
/v1/wallet/balancesopenbankingReads the prepaid Freecharge wallet split into creditable, debitable, general, voucher and withdrawable buckets used on the wallet home.
Auth: Session cookie plus CSRF token header after OTP login; client platform, channel and version query params.
- CREDITABLE_BALANCE
- DEBITABLE_BALANCE
- GENERAL_BALANCE
- TOTAL_BALANCE
- TOTAL_COMPOSITE_BALANCE
- VOUCHER_BALANCE
- CREDITABLE_VOUCHER_BALANCE
- withDrawableBalance
- minWithdrawableBalance
- maxGeneralBalance
- walletStatus
GET /v1/wallet/balances?platform=android&channel=app&version=<client-version> HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Accept: application/json{ "walletResponse": { "balanceDetails": { "CREDITABLE_BALANCE": "850.00", "DEBITABLE_BALANCE": "850.00", "GENERAL_BALANCE": "850.00", "TOTAL_BALANCE": "1200.00", "TOTAL_COMPOSITE_BALANCE": "1200.00", "VOUCHER_BALANCE": "350.00", "CREDITABLE_VOUCHER_BALANCE": "350.00", "CREDITABLE_VOUCHER_AVAILABLE_COUNT": "2", "withDrawableBalance": "850.00" }, "totalBalance": "1200.00", "totalCompositeBalance": "1200.00", "minWithdrawableBalance": "1.00", "maxGeneralBalance": "10000.00", "walletStatus": "ACTIVE" } }Send wallet money
POST
/v1/wallet/transfersopenbankingPushes a P2P send from the prepaid wallet to another mobile handle, keyed by an idempotencyId.
Auth: Session cookie plus CSRF token header after OTP login; wallet identifier issued at login.
- amount
- fromHandle
- toHandle
- payHandle
- receiverIdentity
- idempotencyId
- eventContext
POST /v1/wallet/transfers HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "amount": 250.0, "fromHandle": "9876543210", "fromHandleType": "MOBILE", "toHandle": "9123456789", "toHandleType": "MOBILE", "payHandle": "9123456789", "payHandleType": "MOBILE", "receiverIdentity": "9123456789", "receiverIdentityType": "MOBILE", "idempotencyId": "fc-idem-8f21c4", "eventContext": {"communicatorInfo": {"command": "SEND_MONEY", "domain": "P2P"}} }{ "status": "SUCCESS", "idempotencyId": "fc-idem-8f21c4", "amount": 250.0, "fromHandle": "9876543210", "toHandle": "9123456789" }List linked UPI bank accounts
POST
/v1/upi/linked-accounts/searchopenbankingLists banks and linked UPI accounts (VPA, masked account, IFSC, Lite flags) shown on the UPI accounts screen.
Auth: Session cookie plus CSRF token header after OTP login.
- code
- result
- bankName
- bankCode
- txnLimit
- vpa
- maskedAccnumber
- ifsc
- iin
- accRefNumber
- isPrimary
- isLiteEnabled
- name
POST /v1/upi/linked-accounts/search HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "device": {"app": "android", "mobile": "9876543210"} }{ "code": "00", "result": "SUCCESS", "data": [ { "bankName": "Axis Bank", "bankCode": "UTIB", "txnLimit": "100000", "logo": "https://cdn.example.com/logo.png", "accounts": [ { "vpa": "user@freecharge", "name": "RAJ SHARMA", "bankName": "Axis Bank", "maskedAccnumber": "XXXXXX4321", "ifsc": "UTIB0000123", "iin": "508534", "accRefNumber": "ACC987654", "isPrimary": true, "isLiteEnabled": true, "isLiteCompatible": true, "type": "SAVINGS" } ] } ] }UPI account balance enquiry
POST
/v1/upi/accounts/balance-checksopenbankingChecks the selected linked bank account's available and outstanding balance after a UPI PIN, including the UPI Lite flag.
Auth: Session cookie plus CSRF token header; UPI PIN packed in a cred object after the NPCI common library step.
- code
- result
- isUpiLiteBalance
- availableBalance
- outstandingBalance
- customerId
- bankId
- txnid
POST /v1/upi/accounts/balance-checks HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "bankId": "73", "txnid": "FCUPI20261019120001", "clVersion": "1.8", "requestTimestamp": "2026-10-19T12:00:01+05:30", "ac": {"vpa": "user@freecharge", "accRefNumber": "ACC987654", "ifsc": "UTIB0000123"}, "cred": {"type": "PIN", "data": "<npci-encrypted-pin>"}, "device": {"app": "android", "mobile": "9876543210"} }{ "code": "00", "result": "SUCCESS", "isUpiLiteBalance": false, "data": { "availableBalance": "18450.75", "outstandingBalance": "0.00" } }Verify beneficiary VPA
POST
/v1/upi/payees/verificationopenbankingResolves a payee VPA to a verified name, MCC, spam/unsafe flags and prior-txn count before the send screen.
Auth: Session cookie plus CSRF token header after OTP login.
- vpa
- beneVpa
- maskedBeneVpa
- beneName
- beneVPAVerified
- isBeneNameVerified
- mcc
- maxTxnLimit
- spam
- unsafe
- txnHistoryCount
POST /v1/upi/payees/verification HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "vpa": "shop@okaxis", "customerid": "C123456789", "purpose": "P2M", "category": "MERCHANT", "countryCode": "IN", "isGlobal": false, "isTipsAndConvFee": false }{ "responseBody": { "code": "00", "result": "SUCCESS", "beneVpa": "shop@okaxis", "maskedBeneVpa": "sh**@okaxis", "beneName": "KIRANA STORE", "beneVPAVerified": true, "isBeneNameVerified": "Y", "mcc": "5411", "maxTxnLimit": "100000", "spam": false, "unsafe": false, "txnHistoryCount": 3 } }UPI P2P / P2M pay
POST
/v1/upi/paymentsopenbankingSends a UPI P2P or merchant payment and returns the NPCI rrn plus status used on the success screen.
Auth: Session cookie plus CSRF token header; UPI PIN packed in a cred object after the NPCI common library step.
- amount
- txnId
- payerName
- remarks
- mcc
- purpose
- purposeCode
- beneVpa
- beneName
- bamount
- rrn
- status
- timestamp
- arpc
POST /v1/upi/payments HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "amount": "499.00", "txnId": "FCUPI20261019124500", "payerName": "RAJ SHARMA", "remarks": "Groceries", "mcc": "5411", "purpose": "P2M", "purposeCode": "00", "saveAsBeneficiary": true, "payees": [ {"beneVpa": "shop@okaxis", "beneName": "KIRANA STORE", "bamount": "499.00", "ifsc": "UTIB0000456"} ], "ac": {"vpa": "user@freecharge", "accRefNumber": "ACC987654"}, "cred": {"type": "PIN", "data": "<npci-encrypted-pin>"} }{ "payResponseBody": { "rrn": "629012345678", "status": "SUCCESS", "timestamp": "2026-10-19T12:45:02+05:30", "arpc": "<arpc>" } }Raise UPI collect request
POST
/v1/upi/collect-requestsopenbankingCreates a UPI collect against a payer VPA with an expiry, returning rrn and pending status.
Auth: Session cookie plus CSRF token header after OTP login.
- vpa
- payerVpa
- payerName
- amount
- expiry
- remarks
- txnId
- rrn
- status
- message
- timestamp
POST /v1/upi/collect-requests HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "vpa": "user@freecharge", "payerVpa": "friend@okicici", "payerName": "AMIT KUMAR", "amount": "200.00", "expiry": "2026-10-19T18:00:00+05:30", "remarks": "Split dinner", "txnId": "FCCOL20261019130000", "saveAsBeneficiary": false }{ "collectResponseBody": { "rrn": "629098765432", "status": "PENDING", "message": "Collect request sent", "timestamp": "2026-10-19T13:00:01+05:30" } }Beneficiary recent UPI transactions
POST
/v1/upi/payees/activityopenbankingPages recent UPI debit/credit lines against one beneficiary VPA for the chat-style history strip.
Auth: Session cookie plus CSRF token header after OTP login.
- customerId
- beneVpa
- txnId
- amount
- operationType
- status
- txnDate
- txnDateTimeEpoch
- logo
POST /v1/upi/payees/activity HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "beneVpa": "shop@okaxis" }{ "status": "SUCCESS", "data": [ { "txnId": "FCUPI20261018184500", "amount": "499.00", "operationType": "DEBIT", "status": "SUCCESS", "txnDate": "2026-10-18 18:45:02", "txnDateTimeEpoch": 1760793302000, "logo": "https://cdn.example.com/logo.png" } ] }Fetch BBPS bill
POST
/v1/bills/lookupsopendataFetches a BBPS bill for a saved biller, returning amount, due metadata and a billFetchId used before checkout.
Auth: Session cookie plus CSRF token header after OTP login.
- billFetchId
- billAmount
- billerId
- billerName
- billerLogo
- blockId
- category
- categoryCode
- categoryId
- status
POST /v1/bills/lookups HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "billerId": "MAHA00000MUM01", "category": "Electricity", "categoryCode": "ELECTRICITY", "userDetails": {"customerId": "C123456789", "mobileNumber": "9876543210"} }{ "billFetchId": "BF-88990011", "billAmount": "1840.00", "billerId": "MAHA00000MUM01", "billerName": "MSEDCL", "billerLogo": "https://cdn.example.com/logo.png", "blockId": "BLK-4411", "category": "Electricity", "categoryCode": "ELECTRICITY", "categoryId": 1, "status": "SUCCESS", "additionalDetails": {"dueDate": "2026-10-28", "billNumber": "E202610001"} }Digital gold holdings
GET
/v1/gold/holdingsopenfinanceReads grams of digital gold, rupee mark-to-market and KYC/delivery flags for the gold locker screen.
Auth: Session cookie plus CSRF token header after OTP login.
- aggregatorUserId
- goldBalance
- totalGoldBalance
- cumulativeGoldBalanceInRs
- currentGoldRupeesBalance
- totalGoldInvestedAmount
- percentageGoldGrowth
- isKycDone
- registeredUser
- isDeliveryDone
- showDelivery
GET /v1/gold/holdings HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Accept: application/json{ "aggregatorUserId": "AG-442211", "goldBalance": 2.45, "totalGoldBalance": 2.45, "cumulativeGoldBalanceInRs": 18420.50, "currentGoldRupeesBalance": 18610.00, "totalGoldInvestedAmount": 17000.00, "percentageGoldGrowth": 9.47, "isKycDone": true, "registeredUser": true, "isDeliveryDone": false, "showDelivery": true, "phoneUpdated": true }Enable UPI Lite
POST
/v1/upi-lite/activationsopenbankingRegisters UPI Lite on a linked account and returns the LRN and lite keys used for PIN-less small-value taps.
Auth: Session cookie plus CSRF token header; UPI PIN packed in a cred object after the NPCI common library step.
- accRefNumber
- lrn
- liteKeys
- txnId
- payerLiteAccountNumber
POST /v1/upi-lite/activations HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "accRefNumber": "ACC987654", "txnId": "FCLITE20261019140000" }{ "data": { "accRefNumber": "ACC987654", "lrn": "LITE991122", "liteKeys": "<lite-key-blob>", "txnId": "FCLITE20261019140000", "payerLiteAccountNumber": "XLITE4321" } }Top up UPI Lite
POST
/v1/upi-lite/top-upsopenbankingLoads rupees onto the UPI Lite balance from the linked bank account and returns NPCI rrn plus risk score.
Auth: Session cookie plus CSRF token header; UPI PIN packed in a cred object after the NPCI common library step.
- amount
- txnId
- liteKeyType
- purpose
- rrn
- status
- timestamp
- arpc
- upiRc
- upiIrc
- riskScoreValue
POST /v1/upi-lite/top-ups HTTP/1.1 Cookie: session=<session-token> X-CSRF-Token: <csrf-token> Content-Type: application/json { "customerId": "C123456789", "amount": "2000.00", "txnId": "FCLITEUP20261019140100", "purpose": "LITE_TOPUP", "purposeCode": "00", "liteKeyType": "INITIAL", "ac": {"vpa": "user@freecharge", "accRefNumber": "ACC987654"} }{ "data": { "rrn": "629055667788", "status": "SUCCESS", "timestamp": "2026-10-19T14:01:02+05:30", "arpc": "<arpc>", "upiRc": "00", "upiIrc": "00", "riskScoreValue": "0", "message": "Lite top-up successful" } }
Data categories
- balances
- transactions
- upi-accounts
- bills
- digital-gold
Where teams use this data
Wallet-plus-bank reconciliation
Nightly jobs pull CREDITABLE_BALANCE, DEBITABLE_BALANCE and withDrawableBalance from the prepaid purse, then POST a UPI balance enquiry for availableBalance on each linked VPA so a PF or lending stack can net rupee liquidity across wallet and bank.
BBPS bill-pay confirmation
Utility aggregators fetch billAmount, billerId and billFetchId for electricity and other BBPS operators, then match later UPI rrn values from P2P pay or collect to prove the bill was settled.
Digital-gold wealth snapshot
Wealth dashboards read goldBalance grams next to cumulativeGoldBalanceInRs and percentageGoldGrowth, gated on isKycDone, to show Freecharge gold beside bank and wallet cash.
UPI Lite small-value rail
Merchant analytics can detect Lite-enabled accounts (isLiteEnabled, lrn) and top-up rrn / riskScoreValue to separate PIN-less taps from full UPI PIN sends.
Frequently asked questions
What balances does the Freecharge data API expose?
The prepaid wallet returns CREDITABLE_BALANCE, DEBITABLE_BALANCE, GENERAL_BALANCE, VOUCHER_BALANCE and withDrawableBalance. A separate UPI balance enquiry returns availableBalance and outstandingBalance for a linked bank account, with an isUpiLiteBalance flag when the Lite purse is queried.
Can I read UPI payments, not just balances?
Yes. P2P/P2M pay and collect each return an NPCI rrn plus status and timestamp. Recent payee activity lists txnId, amount, operationType and txnDate per VPA. Payee verification resolves beneName, mcc and spam/unsafe flags before send.
Does Freecharge expose bill and gold data?
Bill lookup returns billAmount, billerId, billerName, billFetchId and categoryCode for BBPS operators. Digital gold holdings return goldBalance grams, cumulativeGoldBalanceInRs, percentageGoldGrowth and isKycDone.
How does the app authenticate these calls?
Mobile OTP login mints a session cookie and a CSRF token that accompany later calls, along with client platform and version parameters. UPI PIN writes pack NPCI-encrypted credentials in the cred object; login also issues a wallet identifier and token for the prepaid purse.
Apps similar to Freecharge UPI & Bill Payments
- PhonePe — PhonePe is a Flipkart-owned Indian UPI app that lets users send and receive money, recharge mobile and DTH, pay utilities, and scan in-store QR codes.
- Google Pay — Google Pay (formerly Tez) is Google's India UPI app for sending and receiving bank-to-bank payments, scanning QR codes, and paying utility bills.
- Paytm — Paytm is an Indian payments app that started as a prepaid mobile and DTH recharge platform and later added a wallet, UPI, and electricity, gas and water bill payments.
- BHIM — BHIM is NPCI's official UPI app for sending and receiving money via UPI ID, QR code or bank account details, with UPI Lite for small on-device payments.
- Amazon Pay — Amazon Pay UPI is Amazon India's in-app UPI service, launched with Axis Bank, that issues a UPI ID for payments on Amazon and other UPI merchants.
- MobiKwik — MobiKwik is an Indian fintech app with an RBI-authorised semi-closed wallet plus UPI transfers, mobile and DTH recharge, and utility and credit-card bill payments.
- CRED — CRED is an Indian app that started as a rewards-based credit-card bill payer and has expanded into UPI payments, rent, and other financial services.
- Airtel: Recharge, Bank & Loans — Airtel Thanks is Bharti Airtel's India subscriber app for prepaid recharge and postpaid bills, with UPI payments and transfers through Airtel Payments Bank.
Topics
- Freecharge API
- Freecharge UPI
- Freecharge wallet balance
- BBPS bill fetch
- UPI Lite
- digital gold Freecharge
- Axis Bank Freecharge
- openData Studio
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