Cairin Pinjaman Daring Data API
Cairin: Pinjaman Daring Cepat is the Android cash-loan client of PT. Idana Solusi Sejahtera, an OJK-licensed Indonesian fintech (KEP-29/D.05/2021) and AFPI member with ISO 27001:2022 certification, based at Rukan Permata Senayan Blocks E52, 53 and 55, Jl. Tentara Pelajar No. 1, Grogol Utara, Kebayoran Lama, South Jakarta 12210. Borrowers apply for unsecured Rupiah cash of IDR 500,000–100,000,000 over 91–365 days at a published maximum 24% a year — an IDR 1,000,000, 120-day example totals IDR 1,080,000 with IDR 270,000 monthly — after e-KTP OCR, face liveness, mother’s-maiden-name and emergency-contact forms, a same-name BCA/BNI (or other) disbursement account, Digisign/VIDA e-signature and, when offered, a first-loan 0% window. Home screens split Pinjaman Tunai and Cicilan Besar, a coupon wallet, VA repayment through BCA, Mandiri, BRI and BNI, tenor relaksasi, and optional NPWP/BPJS/SIM/STNK/passport/credit-card uploads to raise limit; sign-in is a 6-digit SMS or WhatsApp OTP plus a PIN. Customer service is [email protected] / 021-24163377. Google Play lists a 4.44 rating across 404,578 reviews and 10M+ downloads. The app competes with Easycash, Tunaiku, Kredivo and PinjamanGo for Indonesian pinjaman online users.
e-KTP OCR rows pin ocrName to ocrId (NIK) together with ocrSex, ocrBirthday and ocrMarriage, then the limit card contrasts homeLoanOutAmount with homeArrivalAmount and homeLoanDeadLine. Emergency-contact rows and incomeMonthly sit on the same borrower file as motherName.
Ajukan Pinjaman commits orderId with loanPrincipal, disbursementAmount, serviceFee and productCode; repayment issues vaPaymentCode plus currentRepayAmount and homeRepayDate. Coupon wallets expose couponMaxDiscount; Digisign returns signStatus and lenderMatching. Collectors and credit desks use those fields for NIK-to-rekening checks and VA matching; openData Studio turns the same data 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 login OTP
POST
/v1/sessions/challengeosintSends a 6-digit login code to phoneNumber over otpChannel (WhatsApp or SMS) and returns remaining daily send quota.
Auth: Unauthenticated. JSON body phoneNumber and otpChannel (sms or wa).
- phoneNumber
- otpChannel
- vCodeLeftNumber
- ttlSec
POST /v1/sessions/challenge HTTP/1.1 Content-Type: application/json { "phoneNumber": "081234567890", "otpChannel": "wa" }{ "code": 0, "msg": "OK", "data": { "phoneNumber": "081234567890", "otpChannel": "wa", "vCodeLeftNumber": 4, "ttlSec": 59 } }Verify OTP session
POST
/v1/sessions/confirmosintExchanges phoneNumber and the 6-digit vCode for token and userId used on later calls.
Auth: Unauthenticated. JSON body phoneNumber and vCode. Returns a session token sent as a Token header on later calls (no Bearer prefix).
- phoneNumber
- vCode
- token
- userId
POST /v1/sessions/confirm HTTP/1.1 Content-Type: application/json { "phoneNumber": "081234567890", "vCode": "483920" }{ "code": 0, "msg": "OK", "data": { "token": "<session-token>", "userId": "10086001", "phoneNumber": "081234567890" } }e-KTP OCR submit
POST
/v1/identity/id-cardopendataCommits the e-KTP OCR form: ocrName, ocrId (NIK), ocrSex, ocrBirthday, ocrMarriage, ocrKtpAddress, detailAddress, housingCondition and kycVerified.
Auth: Token header carrying the session token from the OTP confirm call.
- ocrName
- ocrId
- ocrSex
- ocrBirthday
- ocrMarriage
- ocrKtpAddress
- detailAddress
- housingCondition
- kycVerified
POST /v1/identity/id-card HTTP/1.1 Content-Type: application/json Token: <session-token> { "ocrName": "BUDI SANTOSO", "ocrId": "3174010101900001", "ocrSex": "LAKI-LAKI", "ocrBirthday": "1990-01-01", "ocrMarriage": "KAWIN", "ocrKtpAddress": "JAKARTA SELATAN", "detailAddress": "Jl. Melati No. 12 RT 003 RW 004", "housingCondition": "Milik Pribadi" }{ "code": 0, "msg": "OK", "data": { "ocrName": "BUDI SANTOSO", "ocrId": "3174010101900001", "ocrSex": "LAKI-LAKI", "ocrBirthday": "1990-01-01", "ocrMarriage": "KAWIN", "ocrKtpAddress": "JAKARTA SELATAN", "detailAddress": "Jl. Melati No. 12 RT 003 RW 004", "housingCondition": "Milik Pribadi", "kycVerified": true } }Face liveness
POST
/v1/identity/face-checkopendataRuns the blink/mouth/yaw liveness check and returns faceVerified, remainingOpportunities and faceImageKey.
Auth: Token header carrying the session token from the OTP confirm call.
- livenessToken
- action
- faceVerified
- remainingOpportunities
- faceImageKey
POST /v1/identity/face-check HTTP/1.1 Content-Type: application/json Token: <session-token> { "livenessToken": "lv_demo_9a21", "action": "blink_mouth_yaw" }{ "code": 0, "msg": "OK", "data": { "livenessToken": "lv_demo_9a21", "faceVerified": true, "remainingOpportunities": 2, "faceImageKey": "identity/10086001/face.jpg" } }Personal and contact info
POST
/v1/borrowers/profileopendataSaves the personal-info form: motherName, email, education, incomeMonthly, industryJob, otherPlatformLoanAmount and two emergency contacts.
Auth: Token header carrying the session token from the OTP confirm call.
- motherName
- education
- incomeMonthly
- industryJob
- otherPlatformLoanAmount
- contactsSubmitted
POST /v1/borrowers/profile HTTP/1.1 Content-Type: application/json Token: <session-token> { "motherName": "SRI WAHYUNI", "email": "[email protected]", "education": "SMU", "incomeMonthly": 4500000, "industryJob": "I004-W001", "otherPlatformLoanAmount": 0, "contacts": [ {"name": "Ani Santoso", "phone": "081298765432", "relation": "Orang Tua"}, {"name": "Joko Widodo", "phone": "081211122233", "relation": "Teman"} ] }{ "code": 0, "msg": "OK", "data": { "motherName": "SRI WAHYUNI", "email": "[email protected]", "education": "SMU", "incomeMonthly": 4500000, "industryJob": "I004-W001", "otherPlatformLoanAmount": 0, "contactsSubmitted": 2 } }Credit-limit card
GET
/v1/borrowers/credit-lineopenfinanceLoads the home/KYC limit card: maxLoanAmount, approved homeLoanOutAmount versus homeArrivalAmount, applied tenor and creditStatus.
Auth: Token header carrying the session token from the OTP confirm call.
- maxLoanAmount
- homeLoanOutAmount
- homeArrivalAmount
- homeAppliedAmount
- homeAppliedDeadLine
- homeLoanDeadLine
- dailyInterestRate
- creditStatus
GET /v1/borrowers/credit-line HTTP/1.1 Token: <session-token>{ "code": 0, "msg": "OK", "data": { "maxLoanAmount": 1600000, "homeLoanOutAmount": 1000000, "homeArrivalAmount": 985000, "homeAppliedAmount": 1000000, "homeAppliedDeadLine": 14, "homeLoanDeadLine": 14, "dailyInterestRate": "0.066%", "creditStatus": "AUDITED" } }Bind disbursement account
POST
/v1/payout-accountsopenbankingBinds a same-name disbursement bank or e-wallet: accountName, bankcardName, bankcardNum, bindStatus and accountType (B bank / W wallet).
Auth: Token header carrying the session token from the OTP confirm call.
- accountName
- bankcardName
- bankcardNum
- bankcardNumMasked
- bindStatus
- accountType
POST /v1/payout-accounts HTTP/1.1 Content-Type: application/json Token: <session-token> { "accountName": "BUDI SANTOSO", "bankcardName": "BCA", "bankcardNum": "1234567890" }{ "code": 0, "msg": "OK", "data": { "accountName": "BUDI SANTOSO", "bankcardName": "BCA", "bankcardNumMasked": "******7890", "bindStatus": "VERIFIED", "accountType": "B" } }Submit loan application
POST
/v1/loan-requestsopenfinanceCommits Ajukan Pinjaman: orderId with loanPrincipal, tenorDays, disbursementAmount, serviceFee, serviceTax, loanPurpose, couponId and productCode (iss001 cash / iss002 large installment).
Auth: Token header carrying the session token from the OTP confirm call.
- orderId
- loanPrincipal
- tenorDays
- disbursementAmount
- serviceFee
- serviceTax
- loanPurpose
- couponId
- productCode
POST /v1/loan-requests HTTP/1.1 Content-Type: application/json Token: <session-token> { "loanPrincipal": 1000000, "tenorDays": 14, "loanPurpose": "Pendidikan", "bankcardNum": "1234567890", "couponId": "c_44001", "motherName": "SRI WAHYUNI" }{ "code": 0, "msg": "OK", "data": { "orderId": "ISS20261020001", "loanPrincipal": 1000000, "tenorDays": 14, "disbursementAmount": 985000, "serviceFee": 15000, "serviceTax": 1650, "loanPurpose": "Pendidikan", "couponId": "c_44001", "productCode": "iss001" } }Loan detail and VA repayment
POST
/v1/loan-requests/repayment-codeopenbankingIssues the virtual-account repayment row for an orderId: currentRepayAmount, homeRepayDate, overdue fields, vaPaymentCode and bankcardName.
Auth: Token header carrying the session token from the OTP confirm call.
- orderId
- loanStatus
- currentRepayAmount
- homeRepayDate
- currentOverdueDays
- currentOverdueAmount
- vaPaymentCode
- bankcardName
POST /v1/loan-requests/repayment-code HTTP/1.1 Content-Type: application/json Token: <session-token> { "orderId": "ISS20261020001" }{ "code": 0, "msg": "OK", "data": { "orderId": "ISS20261020001", "loanStatus": "WAIT_REPAYMENT", "currentRepayAmount": 270000, "homeRepayDate": "2026-11-03", "currentOverdueDays": 0, "currentOverdueAmount": 0, "vaPaymentCode": "8808123456789012", "bankcardName": "BCA" } }Coupon wallet
GET
/v1/vouchersopendataLists the mine-coupon wallet: couponId, couponStatus (available / used / expired), couponMaxDiscount, couponExpireIn and minPrincipal.
Auth: Token header carrying the session token from the OTP confirm call.
- couponId
- couponStatus
- couponMaxDiscount
- couponExpireIn
- minPrincipal
GET /v1/vouchers HTTP/1.1 Token: <session-token>{ "code": 0, "msg": "OK", "data": { "items": [ { "couponId": "c_44001", "couponStatus": "AVAILABLE", "couponMaxDiscount": 50000, "couponExpireIn": "2026-11-30", "minPrincipal": 400000 } ] } }Limit-upgrade documents
POST
/v1/borrowers/supplementary-docsopendataUploads an optional limit-upgrade document (NPWP, BPJS, SIM, STNK, passport or credit card) and returns upgradeStatus plus limitHingga.
Auth: Token header carrying the session token from the OTP confirm call.
- docType
- npwpNumber
- imageKey
- upgradeStatus
- limitHingga
POST /v1/borrowers/supplementary-docs HTTP/1.1 Content-Type: application/json Token: <session-token> { "docType": "NPWP", "npwpNumber": "10.123.456.7-012.000", "imageKey": "identity/10086001/npwp.jpg" }{ "code": 0, "msg": "OK", "data": { "docType": "NPWP", "npwpNumber": "10.123.456.7-012.000", "upgradeStatus": "REVIEWING", "limitHingga": 5000000 } }Digisign loan agreement
POST
/v1/agreements/countersignopenfinanceStarts Digisign/VIDA e-signature for an orderId and returns signStatus, lenderMatching and the 48-hour signCountdownSec.
Auth: Token header carrying the session token from the OTP confirm call.
- orderId
- vidaConsent
- signStatus
- lenderMatching
- signCountdownSec
POST /v1/agreements/countersign HTTP/1.1 Content-Type: application/json Token: <session-token> { "orderId": "ISS20261020001", "vidaConsent": true }{ "code": 0, "msg": "OK", "data": { "orderId": "ISS20261020001", "signStatus": "WAIT_LENDER", "lenderMatching": true, "signCountdownSec": 172800 } }
Data categories
- otp sessions
- kyc profiles
- credit limits
- bank accounts
- loan applications
- repayments
- coupons
Where teams use this data
e-KTP underwriting match
Credit desks join ocrName and ocrId (NIK) to accountName on the bound bank row so a mismatched KTP versus rekening is blocked before disbursementAmount is released.
Disbursement operations
Treasury bots watch creditStatus AUDITED then homeArrivalAmount versus loanPrincipal and bankcardName (BCA/BNI preferred) to confirm the same-name payout landed.
VA collections
Collectors match inbound transfers to vaPaymentCode and bankcardName before homeRepayDate, escalating when currentOverdueDays and currentOverdueAmount move off zero.
Coupon and limit ops
Growth stacks apply couponId / couponMaxDiscount at submit time and read limitHingga after NPWP or BPJS uploads to see whether the next homeLoanOutAmount band unlocked.
Frequently asked questions
What borrower records does Cairin expose after sign-in?
A signed-in session returns the e-KTP OCR row (ocrName, ocrId NIK, ocrSex, ocrBirthday, ocrMarriage), the limit card (homeLoanOutAmount, homeArrivalAmount, homeLoanDeadLine), the apply ticket (orderId, loanPrincipal, disbursementAmount, serviceFee, productCode), the VA repayment row (vaPaymentCode, currentRepayAmount, homeRepayDate) and the coupon wallet (couponId, couponMaxDiscount).
How does the Android client authenticate?
Send OTP posts phoneNumber and otpChannel (sms or wa); confirm OTP exchanges the 6-digit vCode for token and userId. Later calls send that token as a Token header, without a Bearer prefix.
How is an installment repaid?
The repayment-code call returns orderId, vaPaymentCode, bankcardName, currentRepayAmount and homeRepayDate. Collectors match inbound transfers to that virtual account before the due date, and currentOverdueDays / currentOverdueAmount track late bills.
Which fields track a limit increase?
Optional NPWP/BPJS/SIM/STNK uploads return upgradeStatus and limitHingga; the limit card then refreshes maxLoanAmount and homeLoanOutAmount. Coupons that raise limit carry couponId and minPrincipal.
Apps similar to Cairin: Pinjaman Daring Cepat
- Easycash - Pinjaman Daring — Easycash is an OJK-licensed Indonesian unsecured cash-loan app offering IDR 100,000 to IDR 100,000,000 over 3–12 months at a published maximum 36% APR.
- Tunaiku - Pinjaman Dana Online — Tunaiku is PT Bank Amar Indonesia Tbk's OJK-licensed unsecured cash-loan (KTA) app, with published amounts of IDR 2 million to IDR 30 million over 6–30 months.
- Kredivo - Paylater & Pinjaman — Kredivo is PT Kredivo Finance Indonesia's OJK-licensed paylater and cash-loan line of up to IDR 50 million, with a 30-day pay-in-full option and 3–24 month installments.
- PinjamanGo-Pinjaman Uang cepat — PinjamanGo is PT Dana Pinjaman Inklusif's OJK-licensed (KEP-124/D.05/2019) unsecured cash-loan app under Sinar Mas Group, with a published limit of up to Rp6,000,000 over 91–120 days.
- Indosaku-Pinjaman Cicilan Uang — Indosaku is an OJK-licensed (KEP-86/D.05/2021) unsecured cash-loan app offering IDR 500,000 to IDR 80,000,000 over 3-, 6- or 12-month tenors (91–365 days).
- UangMe - Pinjaman Dana Online — UangMe is an OJK-licensed Indonesian unsecured cash-loan (P2P) app, with published limits of Rp 200,000–Rp 50,000,000 and no collateral required.
- AdaKami — AdaKami is PT Pembiayaan Digital Indonesia's OJK-licensed unsecured online cash-loan platform, with flexible 1–12 month tenors on a published 30-day installment cycle.
- JULO — JULO is PT JULO Teknologi Finansial's OJK-supervised digital-credit app whose one limit of up to Rp50,000,000 can be drawn as bank cash, e-wallet top-ups, bill pay, or paylater spend.
Topics
- Cairin API
- Cairin ocrId
- Cairin homeArrivalAmount
- PT Idana Solusi Sejahtera data
- Indonesian pinjaman kycVerified
- Cairin vaPaymentCode
- Cairin couponMaxDiscount
- OJK pinjaman online fields
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