Kissht: Instant Personal Loans icon

Kissht personal-loan, CKYC and EMI APIs

OnEMI Technology Solutions Limited · Lending 4.9 ★

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

  • Kissht: Instant Personal Loans screenshot 1
  • Kissht: Instant Personal Loans screenshot 2
  • Kissht: Instant Personal Loans screenshot 3
  • Kissht: Instant Personal Loans screenshot 4
  • Kissht: Instant Personal Loans screenshot 5
  • Kissht: Instant Personal Loans screenshot 6
  • Kissht: Instant Personal Loans screenshot 7
  • Kissht: Instant Personal Loans screenshot 8

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

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

    Exchanges 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-record osint

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

    Reads 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/timeline opendata

    Pages 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/book openfinance

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

    Reads 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/basic osint

    Loads 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/snapshot openbanking

    Reads 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/start openbanking

    Starts 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/penalty openfinance

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

    Quotes 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/link osint

    Mints 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/accounts openbanking

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

    Returns 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

Get a quote