Kissht personal-loan, CKYC and EMI APIs
Kissht: Instant Personal Loans is OnEMI Technology Solutions Limited's India consumer-lending app (Play package com.fastbanking, shipped on the Ideopay / Pay With Ring stack). Borrowers sign in with mobile OTP, Truecaller or an Android PIN, complete PAN and Aadhaar CKYC plus DigiLocker and video KYC, then take an Insta personal loan or a revolving Flexi/Ring limit that spends over UPI, BBPS and a co-branded SBM wallet-card. Home screens surface a bureau credit-score meter, EMI calendar, foreclosure quote, eNACH autopay, a BNPL line, insurance add-ons and CIBIL terms. The Android client is rated 4.9 across about 1.46 million Google Play reviews and competes with Money View, KreditBee, CASHe, EarlySalary and Paytm's personal-loan rail for the same salaried and self-employed Indian borrowers.
CKYC identity rows pin ckyc_kin_number, pan_number and aadhaar_number to the signed-in borrower, and the bureau meter returns credit_score with last_score_updated_at.
Active EMI books expose emi_amount, outstanding_amount and next_emi_date; the Flexi wallet snapshot carries wallet_balance and available_limit. Collections, LOS and treasury teams reconcile disbursals, score-driven offers and eNACH presentations from those objects, and 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 Android PIN OTP
POST
/v1/signin/pin-otp/dispatchosintSends a login OTP to mobile_number so the Android PIN screen can verify the borrower and mint tokens.
Auth: Unauthenticated; mobile_number in JSON body. Response seeds the PIN-OTP verify call.
- mobile_number
- user_id
- success
- message
- requestId
- responseCode
POST /v1/signin/pin-otp/dispatch HTTP/1.1 Content-Type: application/json { "mobile_number": "9876543210" }{ "success": true, "message": "OTP sent", "requestId": "req-8f21c0", "responseCode": 200, "data": { "mobile_number": "9876543210", "user_id": "USR-10028441" } }Verify PIN OTP
POST
/v1/signin/pin-otp/validateosintExchanges the PIN OTP for access_token, refresh_token, user_id and customer_id used on later authenticated calls.
Auth: OTP plus mobile_number in the JSON body; response mints access_token and refresh_token.
- access_token
- refresh_token
- auth_token
- user_id
- customer_id
- mobile_number
POST /v1/signin/pin-otp/validate HTTP/1.1 Content-Type: application/json { "mobile_number": "9876543210", "otp": "482913" }{ "success": true, "message": "verified", "requestId": "req-91ab", "data": { "access_token": "eyJhbGciOiJIUzI1NiJ9...", "refresh_token": "rt_9f3a", "auth_token": "at_7c2a", "user_id": "USR-10028441", "customer_id": "CUST-5521", "mobile_number": "9876543210" } }Fetch CKYC record
GET
/v1/profiles/kyc-recordosintReturns the signed-in borrower's CKYC identity row: name, father name, PAN, masked Aadhaar, CKYC KIN and registered address.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- full_name
- father_name
- date_of_birth
- gender
- pan_number
- aadhaar_number
- ckyc_kin_number
- ckyc_address
- pincode
- mobile_number
GET /v1/profiles/kyc-record HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "full_name": "PRIYA SHARMA", "father_name": "RAJESH SHARMA", "date_of_birth": "1992-08-14", "gender": "F", "pan_number": "ABCDE1234F", "aadhaar_number": "XXXX-XXXX-3210", "ckyc_kin_number": "10001234567890", "ckyc_address": "12 MG Road, Bengaluru 560001", "pincode": "560001", "mobile_number": "9876543210" } }Fetch bureau credit score
GET
/v1/credit/score/currentopendataReads the bureau meter shown on the credit-score screen: current score, last refresh timestamp and the 300-900 scale bounds.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- credit_score
- current_score
- last_score_updated_at
- upper_score
- lower_score
- pan_number
- score
GET /v1/credit/score/current HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "credit_score": 754, "current_score": 754, "last_score_updated_at": "2026-10-12T06:40:00Z", "upper_score": 900, "lower_score": 300, "pan_number": "ABCDE1234F", "score": 754 } }Credit-score history
GET
/v1/credit/score/timelineopendataPages historical bureau scores that drive the credit-score history chart.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- credit_score
- score
- last_score_updated_at
GET /v1/credit/score/timeline HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": [ { "credit_score": 754, "score": 754, "last_score_updated_at": "2026-10-12T06:40:00Z" }, { "credit_score": 741, "score": 741, "last_score_updated_at": "2026-07-12T06:40:00Z" } ] }List user loans
GET
/v1/credit/loans/bookopenfinanceReturns the borrower's Insta/Flexi loan book: EMI amount, outstanding principal, disbursal amount, next due date and tenure.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- active_loan
- loan_status
- emi_amount
- emi_count
- outstanding_amount
- principal_amount
- disbursal_amount
- due_date
- next_emi_date
- interest_rate
- tenure
- application_status
GET /v1/credit/loans/book HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "active_loan": true, "loans": [ { "loan_status": "ACTIVE", "emi_amount": 4125.0, "emi_count": 12, "outstanding_amount": 28750.0, "principal_amount": 50000.0, "disbursal_amount": 48500.0, "due_date": "2026-11-05", "next_emi_date": "2026-11-05", "interest_rate": 18.5, "tenure": 12, "application_status": "DISBURSED" } ] } }Credit-line offer
GET
/v1/credit/line/quoteopenfinanceReads the sanctioned Flexi/Insta line offer: offer amount, remaining available_limit, processing fee, ROI and the KFS document link.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- offer_id
- offer_amount
- pre_offer
- available_limit
- credit_limit
- eligible_credit_limit
- processing_fee
- interest_rate
- roi
- tenure
- kfs_url
GET /v1/credit/line/quote HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "offer_id": "OFF-22016", "offer_amount": 80000.0, "pre_offer": false, "available_limit": 62500.0, "credit_limit": 80000.0, "eligible_credit_limit": 80000.0, "processing_fee": 1999.0, "interest_rate": 19.99, "roi": 19.99, "tenure": 12, "kfs_url": "/documents/kfs/OFF-22016.pdf" } }User basic details
GET
/v1/profiles/basicosintLoads the onboarding profile card: name, PAN, DOB, pincode, employment type and declared monthly income.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- full_name
- mobile_number
- pan_number
- date_of_birth
- gender
- pincode
- employment_type
- monthly_income
- address
GET /v1/profiles/basic HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "full_name": "PRIYA SHARMA", "mobile_number": "9876543210", "pan_number": "ABCDE1234F", "date_of_birth": "1992-08-14", "gender": "F", "pincode": "560001", "employment_type": "SALARIED", "monthly_income": 65000.0, "address": "12 MG Road, Bengaluru" } }Flexi wallet balance
GET
/v1/wallets/flexi/snapshotopenbankingReads the SBM/Ring Flexi wallet snapshot used on the home limit card: wallet balance, account number, remaining credit limit and cashback.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- wallet_balance
- account_balance
- wallet_ac_no
- available_limit
- credit_limit
- cashback_amount
GET /v1/wallets/flexi/snapshot HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "wallet_balance": 12450.75, "account_balance": 12450.75, "wallet_ac_no": "SBM000112233", "available_limit": 62500.0, "credit_limit": 80000.0, "cashback_amount": 210.0 } }Initiate repayment
POST
/v1/repayments/startopenbankingStarts an EMI or foreclosure repayment and returns the payment-initiation payload: amounts, paymentReferenceNumber, a Razorpay order id and an optional penny-drop payment_link.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- amount
- totalPaymentAmount
- surchargeAmount
- status
- paymentReferenceNumber
- userReferenceNumber
- paymentReceiptMode
- razorpayOrderId
- payment_link
- success
- requestId
- responseCode
POST /v1/repayments/start HTTP/1.1 Authorization: Bearer <access_token> Content-Type: application/json { "amount": 4125.0, "paymentMode": 1 }{ "success": true, "message": "initiated", "requestId": "req-pay-44", "responseCode": 200, "data": { "payment": { "amount": 4125.0, "totalPaymentAmount": 4125.0, "surchargeAmount": 0.0, "status": "PENDING", "paymentReferenceNumber": "PAY-8821", "userReferenceNumber": "USR-10028441", "paymentReceiptMode": "UPI" }, "razorpay": { "razorpayOrderId": "order_M9abc", "key": "rzp_live_xxx" }, "pennydrop": { "payment_link": "/pay/PAY-8821" } } }Loan penalty details
GET
/v1/credit/loans/penaltyopenfinanceReturns late-fee and overdue amounts attached to the active EMI, used on the penalty / collections card.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- penalty_charge
- outstanding_amount
- due_amount
- due_date
- loan_status
- emi_amount
GET /v1/credit/loans/penalty HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "penalty_charge": 350.0, "outstanding_amount": 29100.0, "due_amount": 4475.0, "due_date": "2026-11-05", "loan_status": "OVERDUE", "emi_amount": 4125.0 } }Calculate foreclosure
POST
/v1/credit/loans/closeout-quoteopenfinanceQuotes the foreclosure payoff: remaining principal, foreclosure fees and the total foreclosure_amount shown on the close-loan screen.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- foreclosure_amount
- foreclosure_fees
- outstanding_amount
- principal_amount
- interest_rate
- due_date
POST /v1/credit/loans/closeout-quote HTTP/1.1 Authorization: Bearer <access_token> Content-Type: application/json { "loan_status": "ACTIVE" }{ "success": true, "data": { "foreclosure_amount": 30120.0, "foreclosure_fees": 499.0, "outstanding_amount": 28750.0, "principal_amount": 27500.0, "interest_rate": 18.5, "due_date": "2026-11-05" } }Generate DigiLocker KYC URL
POST
/v1/kyc/digilocker/linkosintMints the DigiLocker authorize URL used on the Aadhaar KYC screen and reports selfie_status / kycStatus for the in-flight journey.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- digilocker_url
- selfie_status
- kycStatus
- consent_type
POST /v1/kyc/digilocker/link HTTP/1.1 Authorization: Bearer <access_token> Content-Type: application/json { "consent_type": "DIGILOCKER" }{ "success": true, "data": { "digilocker_url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=…", "selfie_status": "PENDING", "kycStatus": "IN_PROGRESS" } }List UPI bank accounts
GET
/v1/instruments/upi/accountsopenbankingLists linked UPI bank accounts with masked account_number, IFSC, VPA and the eNACH mandate_reference_number used for autopay.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- account_number
- ifsc_code
- vpa
- nach_status
- mandate_reference_number
GET /v1/instruments/upi/accounts HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": [ { "account_number": "XXXXXX3210", "ifsc_code": "HDFC0000123", "vpa": "priya@okhdfcbank", "nach_status": "ACTIVE", "mandate_reference_number": "NACH-4419" } ] }BNPL credit lines
GET
/v1/credit/bnpl/linesopenfinanceReturns the BNPL / Ring-limit line: remaining available_limit, billed due_amount, cashback and the next due date.
Auth: Authorization: Bearer access_token issued after PIN OTP verify; refresh_token renews the session.
- available_limit
- credit_limit
- due_amount
- cashback_amount
- due_date
- loan_status
GET /v1/credit/bnpl/lines HTTP/1.1 Authorization: Bearer <access_token>{ "success": true, "data": { "available_limit": 15000.0, "credit_limit": 20000.0, "due_amount": 2499.0, "cashback_amount": 75.0, "due_date": "2026-11-05", "loan_status": "ACTIVE" } }
Data categories
- identity
- kyc
- credit-bureau
- loan-accounts
- emi-schedules
- wallets
- upi-mandates
- bnpl
Where teams use this data
EMI-book reconciliation
Collections and LOS bots pull emi_amount, outstanding_amount, next_emi_date and penalty_charge nightly so the servicing ledger matches the in-app EMI calendar.
Bureau-score underwriting
Credit desks read credit_score, last_score_updated_at and pan_number beside offer_amount and available_limit before accepting or refreshing a Flexi line.
CKYC identity matching
KYC ops match ckyc_kin_number, pan_number, aadhaar_number and father_name against the CKYC registry when DigiLocker or video KYC stalls.
Flexi-limit monitoring
Treasury dashboards watch wallet_balance, credit_limit and BNPL due_amount to see how much of the Ring/SBM line is still unspent.
Frequently asked questions
What identity fields does Kissht expose after login?
The CKYC record returns full_name, father_name, date_of_birth, pan_number, masked aadhaar_number, ckyc_kin_number and ckyc_address. The basic-details profile adds employment_type, monthly_income and pincode on the same session.
Can I read EMI and foreclosure amounts, not just the credit line?
Yes. The loans book returns emi_amount, outstanding_amount, disbursal_amount and next_emi_date. The penalty view adds penalty_charge, and the foreclosure quote returns foreclosure_amount plus foreclosure_fees.
How does Kissht authenticate borrowers?
Android PIN sign-in sends an OTP to the registered mobile number, and verifying it mints access_token, refresh_token and auth_token. Later calls carry the access token as a Bearer header. Truecaller and mobile-OTP sign-in paths exist beside the Android PIN flow.
Which products sit on the same session?
Insta personal loans, the revolving Flexi/Ring limit, an SBM wallet-card (wallet_balance, wallet_ac_no), BNPL lines, UPI bank accounts with eNACH mandates, DigiLocker KYC and a CIBIL-style credit-score meter.
Apps similar to Kissht: Instant Personal Loans
- Moneyview — Moneyview is an India finance app that, through its lending partners, offers unsecured personal loans from ₹5,000 to ₹10 lakh with tenures of 3–60 months and a published interest floor of 1.16% per month.
- KreditBee — KreditBee is an India digital-lending platform that arranges personal loans of ₹3,000 to ₹10 lakh from RBI-registered NBFCs and banks, with published tenures of 3–60 months and a fully online application.
- Fibe — Fibe (formerly EarlySalary) is an India consumer-lending app that offers unsecured personal loans of up to ₹10 lakh with 100% digital KYC and published EMI tenures of 6–36 months.
- CASHe — CASHe is an India digital-credit app that offers everyday personal loans of ₹45,000–₹3,00,000 on 9–18 month EMIs, plus a pre-approved revolving limit that can be drawn as a loan or used for buy-now-pay-later.
- RING by Kissht: Personal Loan — RING by Kissht is OnEMI Technology Solutions' other India personal-loan app, advertising unsecured loans of up to ₹5 lakh with digital KYC and EMI repayment.
- Bajaj Finserv — Bajaj Finance is an India NBFC that offers personal loans from ₹40,000 to ₹55 lakh, with published tenures of 12–108 months and a fully online application.
- Paisabazaar: Credit Score App — Paisabazaar is PB Fintech's India marketplace that lets borrowers compare personal-loan offers of up to ₹50 lakh from 30-plus banks and NBFCs and apply from one login.
- PhonePe — PhonePe is an India UPI super-app that also advertises unsecured personal loans of up to ₹10 lakh with a paperless in-app application.
Topics
- kissht
- onemi
- instant personal loan india
- flexi credit limit
- ckyc kin
- cibil score kissht
- emi calendar
- enach mandate
- sbm wallet
- bnpl india
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