CASHe: Quick Personal Loan App icon

CASHe personal-loan data API

CASHe: Instant Personal Loan App · Lending 4.3 ★

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

  • CASHe: Quick Personal Loan App screenshot 1
  • CASHe: Quick Personal Loan App screenshot 2
  • CASHe: Quick Personal Loan App screenshot 3
  • CASHe: Quick Personal Loan App screenshot 4
  • CASHe: Quick Personal Loan App screenshot 5
  • CASHe: Quick Personal Loan App screenshot 6
  • CASHe: Quick Personal Loan App screenshot 7

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

    Sends 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/session osint

    Confirms 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/me osint

    Loads 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-offer openfinance

    Returns 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-line openfinance

    Reads 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/active openfinance

    Lists 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/next openfinance

    Returns 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-quote openfinance

    Quotes 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/statements openfinance

    Loads 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/ledger opendata

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

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

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

    Starts 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/lookup openbanking

    Resolves 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/current openfinance

    Returns 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

Get a quote