TVS Credit Saathi agreement, EMI and Insta Card fields
TVS Credit Saathi is the customer Android app from TVS Credit Services Limited, the Chennai-headquartered Indian NBFC in the TVS Group. Borrowers track two-wheeler, three-wheeler, tractor, used-car and consumer-durable loans, pay EMI through Paytm, Airtel Payments Bank, Atom, HDFC and UPI, and use Insta Loan and Insta Card services. The app also provides a dealer locator, NOC and emailed statement requests, and support tickets. Sign-in uses the registered mobile number, customer name and an SMS OTP. It serves existing TVS Credit borrowers across India alongside vehicle-finance services from Bajaj Finance, Shriram Finance and Mahindra Finance.
Vehicle-linked agreement records connect agreementNumber, vehicleNumber and modelDesc with loanAmount, emiAmount, tenur and rateOfInterest. Collection views bring together receivableEmi, nextPaymentDate, charges, collected, outstanding and receivable; payment preparation adds dueamount, txnId and txncurr. Receipt records contribute receiptNo, receiptDate and receiptAmount for reconciliation, while accountStatus, forecloseStatus and noc_flag describe account and closure states.
Insta Card records pair cardLimit and currentBalance with chassisNo, assetModel and isActive, supporting vehicle-linked credit-limit monitoring. Origination records retain Pancard, Adharcard, LoanAmount, Tenure, MonthIncome and Dealercode alongside leadNo and leadStatus for application-completeness checks. Dealer coverage uses dealerName, lat and lng, and support records carry referenceNumber for ticket tracking. With appropriate authorization for borrower-specific records, collection teams, vehicle-finance aggregators and CRM desks can build EMI dashboards, card-limit monitors and dealer-coverage views; openData Studio turns these data structures into callable open data. The API paths and example values below are illustrative, not a live service contract.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Register customer and send OTP
POST
/v1/access/otp-requestosintStarts borrower sign-in using mobile and customername; returns existingCustomer, isCDCustomer, isFormFilled and otpSrNo for the OTP confirmation screen.
Auth: Unauthenticated form body with mobile, customername and imei. The returned otpSrNo links the OTP confirmation step; later signed-in calls use sid and loginTime.
- name
- mobile
- customername
- imei
- version
- statusCode
- statusMessage
- customerName
- existingCustomer
- isCDCustomer
- isFormFilled
- otpSrNo
- versionChange
POST /v1/access/otp-request HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=otp_request&mobile=%3Cmobile%3E&customername=Demo+Borrower&imei=%3Cdevice-id%3E&version=demo{ "statusCode": "200", "statusMessage": "Illustrative OTP request accepted", "customerName": "Demo Borrower", "existingCustomer": "Y", "isCDCustomer": "N", "isFormFilled": "Y", "otpSrNo": "DEMO-OTP-001", "versionChange": false }Validate OTP and load loan book
POST
/v1/access/otp-confirmationopenfinanceConfirms otpnumber for otpseqno and returns sid, loginTime and the loan book, including agreementNumber, emiAmount, nextPaymentDate, receivableEmi, vehicleNumber and accountStatus for My Loans.
Auth: Unauthenticated form body with otpseqno and otpnumber. Successful OTP confirmation returns sid and loginTime for subsequent signed-in requests.
- name
- mobile
- otpseqno
- otpnumber
- sid
- loginTime
- customerName
- customerDob
- noOfActiveLoans
- noOfClosedLoans
- agreementNumber
- loanAmount
- emiAmount
- tenur
- rateOfInterest
- receivableEmi
- nextPaymentDate
- vehicleNumber
- modelDesc
- accountStatus
- forecloseStatus
- customerIrr
- prospectNumber
POST /v1/access/otp-confirmation HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=otp_confirm&mobile=%3Cmobile%3E&otpseqno=DEMO-OTP-001&otpnumber=%3Cotp%3E{ "sid": "<session-token>", "loginTime": "2026-10-27 09:00:00", "customerName": "Demo Borrower", "customerDob": "<date-of-birth>", "noOfActiveLoans": "1", "noOfClosedLoans": "0", "loanArray": [ { "agreementNumber": "DEMO-TW-001", "loanAmount": "85000", "emiAmount": "4182.20", "tenur": "24", "rateOfInterest": "16.5", "receivableEmi": "4182.20", "nextPaymentDate": "05/11/2026", "vehicleNumber": "<vehicle-number>", "modelDesc": "TVS Apache RTR 160", "accountStatus": "Active", "forecloseStatus": "N", "customerIrr": "17.2", "prospectNumber": "DEMO-PROSPECT-001" } ] }Calculate EMI
POST
/v1/finance/emi-estimatesopenfinanceCalculates emiamount, totalinterest and totalpayment from loanamount, roi and tenur for the EMI Calculator screen.
Auth: Form body; sid and loginTime are optional when a signed-in session is available.
- name
- loanamount
- roi
- tenur
- emiamount
- totalinterest
- totalpayment
- statusCode
- statusMessage
POST /v1/finance/emi-estimates HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=emi_estimate&loanamount=85000&roi=16.5&tenur=24{ "statusCode": "200", "statusMessage": "Illustrative estimate", "emi": [ { "loanamount": "85000", "roi": "16.5", "tenur": "24", "emiamount": "4182.20", "totalinterest": "15372.80", "totalpayment": "100372.80" } ] }Balance and charges statement
POST
/v1/agreements/balance-overviewopenfinanceReturns charges, collected, outstanding and receivable for agreementno on the Charges screen.
Auth: Form body with sid and logintime from the OTP session, plus imei and mobile.
- name
- mobile
- agreementno
- imei
- logintime
- sid
- charges
- collected
- outstanding
- receivable
- statusCode
POST /v1/agreements/balance-overview HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=balance_overview&mobile=%3Cmobile%3E&agreementno=DEMO-TW-001&imei=%3Cdevice-id%3E&logintime=2026-10-27+09%3A00%3A00&sid=%3Csession-token%3E{ "statusCode": "200", "balanceStatements": [ { "charges": "450", "collected": "34000", "outstanding": "51000", "receivable": "4182.20" } ] }Customer payment receipts
POST
/v1/agreements/receipt-historyopenfinanceLists receiptNo, receiptDate, receiptAmount and receiptType for agreementno on the Receipt Details screen.
Auth: Form body with sid and loginTime from the OTP session, plus imei and mobile.
- name
- mobile
- agreementno
- sid
- receiptNo
- receiptDate
- receiptAmount
- receiptType
- statusCode
POST /v1/agreements/receipt-history HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=receipt_history&mobile=%3Cmobile%3E&agreementno=DEMO-TW-001&sid=%3Csession-token%3E&imei=%3Cdevice-id%3E&logintime=2026-10-27+09%3A00%3A00{ "statusCode": "200", "receipts": [ { "receiptNo": "DEMO-RECEIPT-001", "receiptDate": "05/10/2026", "receiptAmount": "4182.20", "receiptType": "EMI" } ] }Insta Card details
POST
/v1/credit-lines/card-overviewopenfinanceLoads Insta Card cardNo, cardLimit, currentBalance, chassisNo and assetModel for the Insta Card screen.
Auth: Form body with mobile after OTP confirmation; sid and loginTime belong to the signed-in session.
- name
- mobile
- cardNo
- cardType
- cardLimit
- currentBalance
- cardValidFrom
- cardValidUpto
- customerName
- customerNo
- chassisNo
- assetModel
- isActive
- sourceSystem
POST /v1/credit-lines/card-overview HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=card_overview&mobile=%3Cmobile%3E&sid=%3Csession-token%3E&logintime=2026-10-27+09%3A00%3A00{ "cardDetails": { "cardNo": "<masked-card-number>", "cardType": "INSTA", "cardLimit": "50000", "currentBalance": "18500", "cardValidFrom": "01/04/2026", "cardValidUpto": "31/03/2029", "customerName": "Demo Borrower", "customerNo": "DEMO-BORROWER-001", "chassisNo": "<chassis-number>", "assetModel": "TVS Apache RTR 160", "isActive": "Y", "sourceSystem": "LMS" } }Insta Loan applications
POST
/v1/credit-applications/historyopenfinanceReturns Insta Loan application rows with leadId, leadStatus, appliedAmount, appliedDate, appliedCity and appliedState for the loan application list.
Auth: Form body with mobile after OTP confirmation.
- name
- mobile
- leadId
- leadStatus
- appliedAmount
- appliedDate
- appliedCity
- appliedState
- statusCode
POST /v1/credit-applications/history HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=application_history&mobile=%3Cmobile%3E{ "statusCode": "200", "myLoans": [ { "leadId": "DEMO-LEAD-001", "leadStatus": "IN_PROGRESS", "appliedAmount": "40000", "appliedDate": "12/10/2026", "appliedCity": "Chennai", "appliedState": "TN" } ] }Apply Insta Loan
POST
/v1/credit-applications/submissionsopenfinanceSubmits amount against a preapproved limit with leadid, referenceid, state and city; returns Lead_Status and InsertLMSDataResult for the Insta Loan application flow.
Auth: Form body with sid and logintime from the OTP session, plus imei and mobile.
- name
- mobile
- amount
- referenceid
- leadid
- leadstatus
- preapproved
- state
- city
- sid
- Lead_Status
- InsertLMSDataResult
- statusCode
POST /v1/credit-applications/submissions HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=application_submit&mobile=%3Cmobile%3E&amount=40000&referenceid=DEMO-REFERENCE-001&leadid=DEMO-LEAD-001&leadstatus=NEW&preapproved=50000&state=TN&city=Chennai&sid=%3Csession-token%3E&imei=%3Cdevice-id%3E&logintime=2026-10-27+09%3A00%3A00{ "statusCode": "200", "Lead_Status": "NEW", "InsertLMSDataResult": "DEMO-LEAD-001" }Nearest dealers
POST
/v1/outlets/nearby-searchopendataReturns dealers near lat and lng for a portfolio, including dealerName, phoneNumber and porfolio for the Dealer Locator map.
Auth: Form body; no session token is specified for this location lookup. lat and lng supply the search location and portfolio selects the dealer type.
- name
- lat
- lng
- portfolio
- dealerName
- phoneNumber
- porfolio
- statusCode
POST /v1/outlets/nearby-search HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=nearby_outlets&lat=13.0827&lng=80.2707&portfolio=TW{ "statusCode": "200", "dealers": [ { "dealerName": "Demo Two-Wheeler Outlet", "lat": "13.0495", "lng": "80.2121", "phoneNumber": "<dealer-phone>", "porfolio": "TW" } ] }Agreement details for payment
POST
/v1/repayments/agreement-lookupopenfinanceResolves agreementnumber or regno to dueamount, ECSCustomer and payment configuration fields txnId and txnscamt for Pay Now.
Auth: Form body with userid representing the borrower mobile number; no Bearer token is specified for this payment lookup.
- name
- userid
- agreementnumber
- regno
- agreementNumber
- customerName
- dueamount
- emailid
- mobile
- registrationnumber
- ECSCustomer
- merchantId
- paymentType
- txnId
- txnscamt
- txndate
- txncurr
- billingCity
- billingState
POST /v1/repayments/agreement-lookup HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=repayment_lookup&userid=%3Cmobile%3E&agreementnumber=DEMO-TW-001®no=%3Cvehicle-number%3E{ "customerDetail": { "agreementNumber": "DEMO-TW-001", "customerName": "Demo Borrower", "dueamount": "4182.20", "emailid": "<borrower-email>", "mobile": "<mobile>", "registrationnumber": "<vehicle-number>", "ECSCustomer": "Y" }, "payconfig": { "merchantId": "<merchant-id>", "paymentType": "EMI", "txnId": "DEMO-TRANSACTION-001", "txnscamt": "4182.20", "txndate": "2026-10-27", "txncurr": "INR", "billingCity": "Chennai", "billingState": "TN" } }Initialize EMI payment
POST
/v1/repayments/session-startopenbankingStarts an EMI payment for paymentmedium, such as PAYTM, AIRTEL, ATOM, HDFC or UPI, with payingAmount inside data; returns statusCode and suspiciousflag before gateway hand-off.
Auth: Form body with sid from the OTP session, userid representing mobile, imei, lat, lng and logintime.
- name
- userid
- data
- sid
- imei
- lat
- lng
- logintime
- paymentmedium
- statusCode
- suspiciousflag
- payingAmount
- agreementNumber
POST /v1/repayments/session-start HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=repayment_start&userid=%3Cmobile%3E&data=%7B%22agreementNumber%22%3A%22DEMO-TW-001%22%2C%22payingAmount%22%3A%224182.20%22%7D&sid=%3Csession-token%3E&imei=%3Cdevice-id%3E&lat=13.0827&lng=80.2707&logintime=2026-10-27+09%3A00%3A00&paymentmedium=UPI{ "statusCode": "200", "suspiciousflag": "N" }Insert LMS origination lead
POST
/v1/origination/lead-submissionsosintCreates an origination lead with Pancard, Adharcard, LoanAmount, Tenure, MonthIncome and Dealercode; returns leadNo and leadStatus for two-wheeler financing.
Auth: JSON body with no Bearer token specified; AgencyCode identifies the Saathi application channel.
- ProductCode
- ChannelCode
- AgencyCode
- Name
- LastName
- Dob
- Mobile
- Pincode
- StateCode
- Citycode
- Pancard
- Adharcard
- LoanAmount
- Tenure
- EMIcomfort
- MonthIncome
- Make
- Model
- Dealercode
- leadNo
- leadStatus
POST /v1/origination/lead-submissions HTTP/1.1 Content-Type: application/json { "ProductCode": "TW", "ChannelCode": "SAATHI", "AgencyCode": "SAATHI", "Name": "Demo", "LastName": "Borrower", "Dob": "<date-of-birth>", "Mobile": "<mobile>", "Pincode": "600001", "StateCode": "TN", "Citycode": "CHN", "Pancard": "<pan>", "Adharcard": "<aadhaar>", "LoanAmount": 85000, "Tenure": 24, "EMIcomfort": 4182, "MonthIncome": 35000, "Make": "TVS", "Model": "Apache RTR 160", "Dealercode": "DEMO-DEALER-001" }{ "leadNo": "DEMO-LEAD-002", "leadStatus": "NEW" }Create CRM support incident
POST
/v1/support/ticket-submissionsopendataOpens a loan-related CRM incident with subject and primaryContact; returns id, lookupName and referenceNumber for the Query Status ticket display.
Auth: Authorization: Basic <integration-credentials>. This integration session is independent of the borrower sid.
- subject
- primaryContact
- customFields
- id
- lookupName
- referenceNumber
- createdTime
- updatedTime
POST /v1/support/ticket-submissions HTTP/1.1 Authorization: Basic <integration-credentials> Content-Type: application/json { "subject": "Demo EMI date query", "primaryContact": { "id": "<contact-id>" }, "customFields": { "cO": { "loan": { "id": "<agreement-id>" } } } }{ "id": 1001, "lookupName": "DEMO-TICKET-001", "referenceNumber": "DEMO-QUERY-001", "subject": "Demo EMI date query", "createdTime": "2026-10-27T09:00:00Z", "updatedTime": "2026-10-27T09:00:00Z" }Email loan statement
POST
/v1/documents/email-requestsopendataEmails a selected statement type, such as SOA, NOC, insurance, sanction or loan agreement, for agreementno to email from Request Statement.
Auth: Form body with sid and loginTime from the OTP session, plus imei and mobile.
- name
- mobile
- agreementno
- statement
- sid
- statusCode
- statusMessage
POST /v1/documents/email-requests HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=email_document&mobile=%3Cmobile%3E&agreementno=DEMO-TW-001&email=%3Cborrower-email%3E&statement=SOA&sid=%3Csession-token%3E&imei=%3Cdevice-id%3E&logintime=2026-10-27+09%3A00%3A00{ "statusCode": "200", "statusMessage": "Illustrative statement email request accepted" }Check NOC eligibility
POST
/v1/agreements/noc-checkopendataReturns noc_flag for agreementno so the NOC Statement action can be enabled on an eligible closed or matured loan.
Auth: Form body identifying the closed or matured agreement with agreementno; no session token is specified for this check.
- name
- agreementno
- noc_flag
- statusCode
- statusMessage
POST /v1/agreements/noc-check HTTP/1.1 Content-Type: application/x-www-form-urlencoded name=noc_eligibility&agreementno=DEMO-TW-001{ "noc_flag": "Y", "statusCode": "200", "statusMessage": "Illustrative eligibility result" }
Data categories
- loan_agreements
- emi_schedules
- insta_cards
- kyc_leads
- dealers
- payments
- receipts
- crm_tickets
Where teams use this data
Vehicle-loan EMI collection dashboard
Read agreementNumber, emiAmount, receivableEmi, nextPaymentDate and accountStatus from the OTP loan book, then join dueamount from agreement details so a collector can see which two-wheeler contracts are due this cycle.
Insta Card limit monitoring
Poll cardLimit, currentBalance, cardNo, chassisNo and isActive to watch unused Insta Card headroom against the linked assetModel before a top-up offer.
Two-wheeler origination KYC completeness
Require Pancard, Adharcard, MonthIncome, Dealercode and Pincode on InsertLMSData and store leadNo / leadStatus so a DSA desk can chase incomplete Saathi-channel applications.
Dealer coverage versus live books
Overlay dealerName, lat, lng and porfolio from nearest-dealer pins on live loanArray vehicleNumber / modelDesc rows to see which TVS outlets sit under active TW contracts.
Frequently asked questions
How does TVS Credit Saathi authenticate borrowers?
Borrower sign-in uses a registered mobile number and customer name followed by an SMS OTP. OTP confirmation provides sid and loginTime for subsequent signed-in requests, with imei identifying the device. CRM support uses a separate HTTP Basic integration session. The published path-only examples illustrate sign-in, agreements, EMI, Insta Card, lead submission and support data; they are not live service endpoints. Sample records are fictional and placeholders are not working credentials. Borrower-specific information requires appropriate authorization.
Which loan agreement and EMI fields are represented?
Loan records include agreementNumber, loanAmount, emiAmount, tenur, rateOfInterest, receivableEmi and nextPaymentDate, linked to vehicleNumber and modelDesc. accountStatus and forecloseStatus describe the agreement state; balance statements add charges, collected, outstanding and receivable.
Can the payment data represent the amount due before an EMI payment?
The illustrative payment lookup associates an agreement number or vehicle registration with dueamount and ECSCustomer. Payment configuration includes txnId, txnscamt and txncurr, while paymentmedium identifies a Paytm, Airtel, Atom, HDFC or UPI hand-off. Example values do not represent an actual payable amount or initiate a transaction.
What does the Insta Card data include?
The card view includes cardNo, cardType, cardLimit, currentBalance, cardValidFrom and cardValidUpto, with chassisNo and assetModel linking the card to a vehicle. isActive describes the card state. These fields support limit and balance monitoring with authorization for the borrower account.
Apps similar to TVS Credit Saathi
- Bajaj Finance — Bajaj Finance is an India NBFC that offers two-wheeler loans from ₹35,000 to ₹21 lakh, with financing of up to 100% of on-road price and repayment tenures from 6 to 84 months.
- Shriram One — Shriram One is Shriram Finance's India app for two-wheeler, used-car, commercial-vehicle, personal, business and gold loans, with two-wheeler financing advertised from ₹10,000 to ₹2 lakh at rates starting from 10% p.a. over 12–60 months.
- Hero FinCorp — Hero FinCorp is an India NBFC that advertises two-wheeler loans of up to ₹3.5 lakh covering up to 95% of vehicle cost, with published interest from 14% p.a., plus used-car and personal loans.
- Cholamandalam Finance — Cholamandalam Finance (Chola) is an India NBFC that finances new and used cars, two-wheelers, three-wheelers, tractors, commercial vehicles and construction equipment, and lets borrowers pay vehicle EMI online.
- L&T Finance : PLANET Loan App — L&T Finance is an India NBFC whose PLANET app originates personal loans, and whose two-wheeler loans advertise funding of up to ₹20 lakh with repayment of up to five years for commuter, electric and superbike purchases.
- Mahindra Finance — Mahindra & Mahindra Financial Services is a Mumbai-headquartered India NBFC that finances vehicles and tractors for rural and semi-urban customers and reports more than 1,000 offices across the country.
- Sundaram Finance — Sundaram Finance is an India NBFC that offers car, commercial-vehicle, construction-equipment, farm-equipment, diesel and tyre finance, along with fixed deposits and an online EMI calculator.
Topics
- TVS Credit Saathi API
- TVS Credit loan agreements
- TVS Credit EMI balances
- Insta Card cardLimit
- TVS Credit KYC lead fields
- TVS Credit dealer locator
- India vehicle finance data
- TVS Credit payment dueamount
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