CASHe personal-loan data API
CASHe: Quick Personal Loan App is the India Android client from publisher CASHe: Instant Personal Loan App (Mumbai head office) for salaried borrowers who want an instant personal loan, a revolving credit line, gold loan, house-rent finance, BNPL shopping loans, digital gold and in-app IRCTC bookings on one home. Sign-in is mobile OTP (or Truecaller), then Aadhaar OKYC / CKYC / video KYC, a plan from partner NBFCs such as Bhanix Finance and Northern Arc Capital, and e-mandate repayment over Razorpay, PhonePe or UPI Autopay, with EMI, foreclosure and statement-of-account screens for live books. It competes with Fibe, KreditBee, Money View and PaySense in India's salaried personal-loan market; Play rates it 4.4 stars from about 398,000 reviews.
Sanctioned personal-loan headroom sits in availableCreditLimit and the rupees that actually land in the salary account as inHandAmount, next to Equifax equifaxScore and the in-house slqScore. Live books expose loanId, partner nbfcName, loanAmount, nextEmiDueDate, nextEmiDueAmount and a same-day close quote in foreclosureAmount / foreclosureCharges.
Payroll lenders, collection desks and partner NBFCs join those fields with KYC flags (isOKycVerified, isCKycObtained, aadhaarNumber) and gold-pledge grams (goldGramsRequired, ratePer1gm) to monitor remaining limit, chase EMI, and keep LTV inside policy. openData Studio turns that surface 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.
Generate mobile OTP
POST
/v1/auth/mobile/challengeosintSends a login OTP to mobileNumber from the given deviceId and appVersion so the verify call can mint accessToken.
Auth: Unauthenticated JSON body. Later calls attach Authorization: Bearer accessToken plus customerId from the verify step.
- mobileNumber
- deviceId
- appVersion
- statusCode
- responseMessage
POST /v1/auth/mobile/challenge HTTP/1.1 Content-Type: application/json { "mobileNumber": "9876543210", "deviceId": "a1b2c3d4-e5f6", "appVersion": "9.2.9" }{ "statusCode": "200", "responseMessage": "OTP sent", "mobileNumber": "9876543210", "otp": null }Verify mobile OTP
POST
/v1/auth/mobile/sessionosintConfirms the SMS otp for mobileNumber and returns accessToken, customerId, customerStatus and isOKycVerified for the signed-in session.
Auth: Unauthenticated JSON body with mobileNumber and otp. Response accessToken becomes Authorization: Bearer; customerId rides on later customer calls.
- mobileNumber
- otp
- deviceId
- accessToken
- customerId
- customerStatus
- sessionId
- isOKycVerified
POST /v1/auth/mobile/session HTTP/1.1 Content-Type: application/json { "mobileNumber": "9876543210", "otp": "482913", "deviceId": "a1b2c3d4-e5f6" }{ "statusCode": "200", "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "customerId": "CASH-10028441", "customerStatus": "ACTIVE", "sessionId": "sess-7c2a", "isOKycVerified": false }Customer profile
GET
/v1/borrowers/meosintLoads the signed-in borrower card: customerId, name, mobileNumber, emailId, panNumber, aadhaarNumber and KYC flags isOKycVerified / isCKycObtained / ckycId.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- customerName
- firstName
- lastName
- mobileNumber
- emailId
- panNumber
- aadhaarNumber
- customerStatus
- isOKycVerified
- isCKycObtained
- ckycId
GET /v1/borrowers/me HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json{ "customerId": "CASH-10028441", "customerName": "Priya Sharma", "firstName": "Priya", "lastName": "Sharma", "mobileNumber": "9876543210", "emailId": "[email protected]", "panNumber": "ABCDE1234F", "aadhaarNumber": "XXXX-XXXX-3210", "customerStatus": "ACTIVE", "isOKycVerified": true, "isCKycObtained": true, "ckycId": "CKYC-884210" }Credit details
GET
/v1/borrowers/me/credit-offeropenfinanceReturns sanctioned headroom (availableCreditLimit, availableCredit) versus rupees that land in the salary account (inHandAmount), plus processingFee, interestRate, tenure and the partner nbfcName.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- availableCreditLimit
- availableCredit
- inHandAmount
- maxCreditEligible
- minCreditEligible
- processingFee
- interestRate
- annualInterestRate
- tenure
- nbfcName
- nbfcId
- eligibleForCASHeLoans
GET /v1/borrowers/me/credit-offer HTTP/1.1 Authorization: Bearer <accessToken>{ "customerId": "CASH-10028441", "availableCreditLimit": 85000, "availableCredit": 85000, "inHandAmount": 79250, "maxCreditEligible": 100000, "minCreditEligible": 10000, "processingFee": 1999, "interestRate": 1.5, "annualInterestRate": 18.0, "tenure": 6, "nbfcName": "Bhanix Finance and Investment Limited", "nbfcId": "BHANIX", "eligibleForCASHeLoans": true }Credit-line details
GET
/v1/borrowers/me/revolving-lineopenfinanceReads revolving-line headroom as availableCreditLineLimit against maxCreditlineEligibleLimit, with isEligibleForCreditLine, nbfcLoanApplicationId, loanStatus and currentOutstandingAmount.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- availableCreditLineLimit
- maxCreditlineEligibleLimit
- isEligibleForCreditLine
- nbfcLoanApplicationId
- loanStatus
- currentOutstandingAmount
GET /v1/borrowers/me/revolving-line HTTP/1.1 Authorization: Bearer <accessToken>{ "customerId": "CASH-10028441", "availableCreditLineLimit": 40000, "maxCreditlineEligibleLimit": 50000, "isEligibleForCreditLine": true, "nbfcLoanApplicationId": "NBFCLA-55201", "loanStatus": "ACTIVE", "currentOutstandingAmount": 12500 }Active loans
GET
/v1/loans/activeopenfinanceLists live books with loanId, loanAmount, loanStatus, partner nbfcName, disbursedOn, outstandingAmount, emiAmount, noOfEmisDue and isOverdue.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- loanId
- loanAmount
- loanStatus
- loanType
- loanProduct
- nbfcName
- disbursedOn
- inHandAmount
- outstandingAmount
- emiAmount
- tenure
- noOfEmisDue
- isOverdue
GET /v1/loans/active HTTP/1.1 Authorization: Bearer <accessToken>{ "activeLoans": [ { "loanId": "LN-2026-881144", "loanAmount": 50000, "loanStatus": "ACTIVE", "loanType": "PERSONAL", "loanProduct": "Insta15", "nbfcName": "Bhanix Finance and Investment Limited", "disbursedOn": "2026-08-12", "inHandAmount": 46500, "outstandingAmount": 31200, "emiAmount": 9200, "tenure": 6, "noOfEmisDue": 3, "isOverdue": false } ] }Next EMI by loan category
GET
/v1/loans/installments/nextopenfinanceReturns the upcoming instalment for a loanCategory: nextEmiDueDate, nextEmiDueAmount, nextEmiAmount, noOfEmisDue, overdueAmount and lateFee.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- loanCategory
- loanId
- nextEmiDueDate
- nextEmiDueAmount
- nextEmiAmount
- nextEmiTotalAmount
- noOfEmisDue
- overdueAmount
- lateFee
GET /v1/loans/installments/next?loanCategory=PERSONAL HTTP/1.1 Authorization: Bearer <accessToken>{ "loanCategory": "PERSONAL", "loanId": "LN-2026-881144", "nextEmiDueDate": "2026-11-05", "nextEmiDueAmount": 9200, "nextEmiAmount": 9200, "nextEmiTotalAmount": 9200, "noOfEmisDue": 3, "overdueAmount": 0, "lateFee": 0 }Foreclosure quote
GET
/v1/loans/closure-quoteopenfinanceQuotes the rupees needed to close loanId today: foreclosureAmount, foreclosureCharges and currentOutstandingAmount, gated by canShowLoanForeclosureOption.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- loanId
- foreclosureAmount
- foreClosureAmount
- foreclosureCharges
- currentOutstandingAmount
- outstandingAmount
- canShowLoanForeclosureOption
GET /v1/loans/closure-quote?loanId=LN-2026-881144 HTTP/1.1 Authorization: Bearer <accessToken>{ "loanId": "LN-2026-881144", "foreclosureAmount": 31850, "foreClosureAmount": 31850, "foreclosureCharges": 650, "currentOutstandingAmount": 31200, "outstandingAmount": 31200, "canShowLoanForeclosureOption": true }Statement of account
GET
/v1/loans/statementsopenfinanceLoads the statement-of-account snapshot for loanId: loanAmount, disbursedOn, outstandingAmount, emiAmount, numberOfEmis and isEligibleForSOA.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- loanId
- customerId
- loanAmount
- disbursedOn
- outstandingAmount
- emiAmount
- numberOfEmis
- noOfEmisDue
- isEligibleForSOA
GET /v1/loans/statements?loanId=LN-2026-881144 HTTP/1.1 Authorization: Bearer <accessToken>{ "loanId": "LN-2026-881144", "customerId": "CASH-10028441", "loanAmount": 50000, "disbursedOn": "2026-08-12", "outstandingAmount": 31200, "emiAmount": 9200, "numberOfEmis": 6, "noOfEmisDue": 3, "isEligibleForSOA": true }All transactions
GET
/v1/loans/ledgeropendataPages borrower ledger rows as transactionId, txnAmount, txnDate, txnType, categoryName and loanId (repayments, disbursals, fees).
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- transactionId
- txnAmount
- txnDate
- txnType
- categoryName
- loanId
GET /v1/loans/ledger HTTP/1.1 Authorization: Bearer <accessToken>{ "transactions": [ { "transactionId": "TXN-778210", "txnAmount": 9200, "txnDate": "2026-10-05", "txnType": "EMI_REPAYMENT", "categoryName": "PERSONAL_LOAN", "loanId": "LN-2026-881144" } ] }Credit-score aggregate
GET
/v1/scores/summaryopendataReturns bureau and in-house scores for the borrower: equifaxScore, cibilScore, slqScore, isCreditScoreAvailable, isValidEquifaxInfoAvailable and bureauFetchStatus.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- equifaxScore
- cibilScore
- slqScore
- isCreditScoreAvailable
- isValidEquifaxInfoAvailable
- bureauFetchStatus
- costForCreditScoreAggregate
GET /v1/scores/summary HTTP/1.1 Authorization: Bearer <accessToken>{ "customerId": "CASH-10028441", "equifaxScore": 742, "cibilScore": 738, "slqScore": 81, "isCreditScoreAvailable": true, "isValidEquifaxInfoAvailable": true, "bureauFetchStatus": "SUCCESS", "costForCreditScoreAggregate": 0 }Loan eligibility check
POST
/v1/eligibility/checksopenfinanceScores a requested loanAmount/tenure against CASHe and SLQ rules, returning eligibleAmount, inHandAmount, slqScore, minEligibleSalaryAmt and nbfcName.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- loanAmount
- tenure
- loanCategory
- eligibleForCASHeLoans
- isEligibleToTakeLoan
- eligibleAmount
- inHandAmount
- slqScore
- isEligibleToTakeLoanBasedOnSLQ
- minEligibleSalaryAmt
- nbfcName
POST /v1/eligibility/checks HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "customerId": "CASH-10028441", "loanAmount": 40000, "tenure": 6, "loanCategory": "PERSONAL" }{ "eligibleForCASHeLoans": true, "isEligibleToTakeLoan": true, "eligibleAmount": 85000, "inHandAmount": 79250, "slqScore": 81, "isEligibleToTakeLoanBasedOnSLQ": true, "minEligibleSalaryAmt": 25000, "nbfcName": "Bhanix Finance and Investment Limited" }Aadhaar OTP
POST
/v1/kyc/identity/otposintStarts Aadhaar OKYC by sending an OTP against aadhaarNumber and returning isOKycEligible before the Aadhaar OTP is confirmed.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- aadhaarNumber
- statusCode
- responseMessage
- isOKycEligible
POST /v1/kyc/identity/otp HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "customerId": "CASH-10028441", "aadhaarNumber": "XXXX-XXXX-3210" }{ "statusCode": "200", "responseMessage": "Aadhaar OTP sent", "aadhaarNumber": "XXXX-XXXX-3210", "isOKycEligible": true }Bank details by IFSC
GET
/v1/banks/lookupopenbankingResolves an IFSC to bankName, branchName and accountType so the disbursal account (accountNumber, beneficiaryName) can be confirmed.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- ifsc
- ifscCode
- bankName
- branchName
- accountType
GET /v1/banks/lookup?ifsc=HDFC0001234 HTTP/1.1 Authorization: Bearer <accessToken>{ "ifsc": "HDFC0001234", "ifscCode": "HDFC0001234", "bankName": "HDFC Bank", "branchName": "Bandra West", "accountType": "SAVINGS" }Gold-loan details
GET
/v1/gold-loans/currentopenfinanceReturns the gold-loan ticket: goldGramsRequired at ratePer1gm, requested loanAmount, partner nbfcName and loanStatus.
Auth: Authorization: Bearer accessToken from POST /v1/auth/mobile/session. customerId identifies the borrower.
- customerId
- goldGramsRequired
- ratePer1gm
- loanAmount
- nbfcName
- loanStatus
GET /v1/gold-loans/current HTTP/1.1 Authorization: Bearer <accessToken>{ "customerId": "CASH-10028441", "goldGramsRequired": 12.5, "ratePer1gm": 6850, "loanAmount": 70000, "nbfcName": "Northern Arc Capital Limited", "loanStatus": "PENDING" }
Data categories
- credit_limits
- loans
- repayments
- credit_scores
- kyc
- bank_accounts
- transactions
- gold_loans
Where teams use this data
Credit-limit monitoring for payroll lenders
Nightly jobs read availableCreditLimit, inHandAmount and eligibleAmount per customerId so a payroll or BNPL partner can see remaining CASHe headroom before pitching a top-up.
EMI and overdue collection dashboards
Collectors pull nextEmiDueDate, nextEmiDueAmount, noOfEmisDue, overdueAmount and lateFee from active loanId rows, then quote foreclosureAmount when a borrower wants to close the book.
Bureau-score and KYC onboarding
Onboarding desks join equifaxScore, cibilScore and slqScore with isOKycVerified, isCKycObtained, panNumber and aadhaarNumber so a partner NBFC can decide whether CKYC / video KYC still blocks disbursal.
Gold-loan LTV tracking
Pledge desks watch goldGramsRequired against ratePer1gm and the requested loanAmount so LTV stays inside the partner nbfcName policy before the loan application is submitted.
Frequently asked questions
What credit-limit fields does CASHe expose?
The credit-offer call (GET /v1/borrowers/me/credit-offer) returns availableCreditLimit, availableCredit and inHandAmount against maxCreditEligible / minCreditEligible, plus processingFee, interestRate, tenure and the partner nbfcName. Revolving-line headroom is a separate availableCreditLineLimit on the revolving-line call (GET /v1/borrowers/me/revolving-line).
Can I read EMI dues and foreclosure quotes?
Yes. The next-instalment call (GET /v1/loans/installments/next) returns nextEmiDueDate, nextEmiDueAmount, noOfEmisDue, overdueAmount and lateFee per loanCategory. The closure-quote call (GET /v1/loans/closure-quote) returns foreclosureAmount and foreclosureCharges against currentOutstandingAmount.
Which bureau scores are on the credit-score summary?
The score summary (GET /v1/scores/summary) carries equifaxScore, cibilScore and CASHe's slqScore, with isCreditScoreAvailable, isValidEquifaxInfoAvailable and bureauFetchStatus. A fuller bureau report is a separate call in the app.
How does the app authenticate borrowers?
Mobile OTP: a send call (POST /v1/auth/mobile/challenge) then a confirm call (POST /v1/auth/mobile/session), which mints accessToken, customerId and customerStatus. Later customer calls send Authorization: Bearer accessToken. Aadhaar OKYC is a second OTP step.
Apps similar to CASHe: Quick Personal Loan App
- Fibe — Fibe (formerly EarlySalary) is an India instant personal-loan app offering unsecured loans of up to ₹10 lakh over 6–36 months through its NBFC arm EarlySalary Services and partner lenders.
- KreditBee — KreditBee is an India digital-lending app that arranges personal loans of ₹6,000 to ₹10 lakh over 6–60 months from RBI-registered NBFCs, with in-app UPI alongside the loan flow.
- Moneyview — Moneyview is an India finance app that offers unsecured personal loans of ₹5,000 to ₹10 lakh over 3–60 months, plus UPI, credit cards and a free CIBIL score check.
- Kissht: Instant Personal Loans — Kissht is an India digital-lending app for salaried and self-employed borrowers, advertising unsecured personal and business loans of ₹10,000 to ₹5 lakh over 6–60 months.
- MoneyTap -Credit Loan Payments — MoneyTap (now Freo Credit) is an India credit-line app for salaried users that lets them draw ₹3,000 to ₹5 lakh from an approved limit and pay interest only on the amount withdrawn.
- Bajaj Finance — Bajaj Finance is an India NBFC whose personal-loan product advertises amounts from ₹40,000 to ₹55 lakh with published tenures of 12–108 months.
- PhonePe — PhonePe is an India UPI super-app that also runs a digital personal-loan flow with 6–48 month tenures through partner lenders such as Aditya Birla, Piramal, IDFC First, L&T Finance, PayU Finance and Credit Saison.
- Paisabazaar: Credit Score App — Paisabazaar is an India marketplace that lets borrowers compare personal-loan offers of up to ₹50 lakh from 30+ lenders and apply online.
Topics
- CASHe API
- CASHe personal loan data
- availableCreditLimit
- inHandAmount
- equifaxScore
- nextEmiDueDate
- foreclosureAmount
- Indian NBFC loan API
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use