Home Credit Indonesia data API
Home Credit-Pinjaman & Kredit is PT Home Credit Indonesia's Android client for consumer financing in Indonesia (Play also labels the same package My Home Credit Indonesia). Customers manage installment contracts for electronics, motorbikes and other goods, activate Bayar Nanti (pay-later) at merchants and QRIS, hold a Home Credit card, top up an in-app e-wallet for pulsa, PLN, PDAM and BPJS, and apply for FlexiFast cash loans and UDJ / multiwithdrawal limit offers from the same home screen. A marketplace, POS locator, inbox and direct-debit setup sit alongside PIN lock, OTP and biometric sign-in. The company is an OJK-supervised multifinance lender competing with Kredivo, Akulaku and Easycash for Indonesian pinjaman and paylater users.
Bayar Nanti account rows pair availableBalance with usedBalance, ownFund and increaseLimit under a cuid, payLaterStatus and pastDueStatus, while merchant tickets add merchantName, amountTransaction, tenor and installmentAmount.
Installment books list installmentNumber, dueDate and valuePaid; pending invoices carry virtualAccount, totalInvoice and commodityType; the Home Credit card publishes cardLimit, cardAvailableLimit, retailBalance and merchant acceptorName lines; the wallet ledger records senderAccount, destinationAccount and referenceId; FlexiFast cash-loan tiles quote offerAmount, minCreditAmount, maxCreditAmount and flatRate.
Collections desks, BNPL reconcilers and card-spend analytics can consume those ledgers; 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.
OAuth2 access token
POST
/v1/identity/oauth2/tokenosintExchanges grant_type and client_id for the accessToken used as Authorization: Bearer on later customer, paylater, card and wallet calls, together with expiresIn, refreshToken and type.
Auth: OAuth2 form body grant_type and client_id (plus username/password on the password grant). Returns accessToken, expiresIn, refreshToken and type for later Bearer use.
- grant_type
- client_id
- accessToken
- expiresIn
- refreshToken
- type
POST /v1/identity/oauth2/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=password&client_id=<client_id>&username=081234567890&password=********{ "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...", "expiresIn": 3600, "refreshToken": "rt_8f21c0ab", "type": "Bearer" }Bayar Nanti account details
GET
/v1/paylater/accounts/currentopenfinanceLoads the Bayar Nanti (pay-later) account: identity (cuid, customerName, idCardNumber), status flags, and the nested balance block with limits (availableBalance, usedBalance, totalBalance, ownFund, increaseLimit).
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- cuid
- customerName
- idCardNumber
- payLaterStatus
- pastDueStatus
- offerId
- maximumActivationDate
- billingStatus
- availableBalance
- totalBalance
- usedBalance
- ownFund
- increaseLimit
- insuranceStatus
- adminFee
- blocked
- blockReasons
- contractNumber
- dueDate
- billingDate
GET /v1/paylater/accounts/current HTTP/1.1 Authorization: Bearer <access_token>{ "cuid": "CUID-1048291", "customerName": "Siti Nurhaliza", "email": "[email protected]", "idCardNumber": "3174xxxxxxxxxxxx", "payLaterStatus": "ACTIVE", "pastDueStatus": false, "offerId": "PL-OFF-9921", "maximumActivationDate": "2026-12-31", "billingStatus": "CURRENT", "paylaterAccountBalanceDto": { "contractNumber": "PL-2026-881144", "dueDate": "2026-11-05", "billingDate": "2026-10-20", "availableBalance": 3500000, "totalBalance": 5000000, "usedBalance": 1500000, "ownFund": 0, "increaseLimit": true }, "insuranceStatus": true, "adminFee": 25000, "blocked": false, "blockReasons": [] }Bayar Nanti transaction detail
GET
/v1/paylater/contracts/{contractNumber}/purchases/{referenceNumber}openfinanceReturns one Bayar Nanti purchase by contractNumber and referenceNumber: merchantName, amountTransaction, tenor, installmentAmount, fees and dueDate.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- referenceNumber
- category
- transactionDateTime
- merchantName
- merchantId
- amountTransaction
- basicAmountTransaction
- transactionFee
- monthlyInstallmentFee
- tenor
- totalTransaction
- installmentAmount
- dueDate
- paymentMethod
GET /v1/paylater/contracts/PL-2026-881144/purchases/REF-778210 HTTP/1.1 Authorization: Bearer <access_token>{ "referenceNumber": "REF-778210", "category": "QRIS", "transactionDateTime": "2026-10-12T14:03:11+07:00", "merchantName": "Alfamart Menteng", "merchantId": "MID-ALFA-091", "amountTransaction": 185000, "basicAmountTransaction": 185000, "transactionFee": 0, "monthlyInstallmentFee": 4500, "tenor": "3", "totalTransaction": 198500, "installmentAmount": 66167, "dueDate": "2026-11-05", "paymentMethod": "PAYLATER" }Contract history
GET
/v1/contracts/historyopenfinanceLists the customer's financed contracts with commodityType, contractNumber, date, price, status and type for the contract-history screen.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- commodityType
- contractNumber
- date
- price
- status
- type
GET /v1/contracts/history HTTP/1.1 Authorization: Bearer <access_token>{ "data": [ { "commodityType": "ELECTRONICS", "contractNumber": "HC-2024-55201", "date": "2024-08-19", "price": "4999000", "status": "ACTIVE", "type": "INSTALLMENT" } ] }Installment schedule
GET
/v1/contracts/{contractNumber}/scheduleopenfinanceReturns the installment book for one contract: each installment has installmentNumber, dueDate, installmentAmount, datePaid, valuePaid, status and subStatus.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- contractNumber
- datePaid
- dueDate
- installmentAmount
- installmentDetails
- installmentNumber
- status
- subStatus
- title
- valuePaid
GET /v1/contracts/HC-2024-55201/schedule HTTP/1.1 Authorization: Bearer <access_token>{ "contractNumber": "HC-2024-55201", "installments": [ { "datePaid": "2026-09-05", "dueDate": "2026-09-05", "installmentAmount": 416583, "installmentDetails": [], "installmentNumber": 14, "status": "PAID", "subStatus": "ON_TIME", "title": "Angsuran 14", "valuePaid": 416583 }, { "datePaid": null, "dueDate": "2026-10-05", "installmentAmount": 416583, "installmentDetails": [], "installmentNumber": 15, "status": "DUE", "subStatus": "OPEN", "title": "Angsuran 15", "valuePaid": 0 } ] }Pending payments
GET
/v1/payments/outstandingopenfinanceLoads unpaid invoices for the payment screen: totalPending plus each contract's virtualAccount, totalInvoice, dueDate, commodityName and paymentChannel.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- cuid
- totalPending
- commodityName
- commodityType
- contractNumber
- customerName
- dueDate
- paymentChannel
- productType
- ptp
- totalInvoice
- type
- virtualAccount
GET /v1/payments/outstanding HTTP/1.1 Authorization: Bearer <access_token>{ "cuid": "CUID-1048291", "totalPending": "416583", "contract": [ { "commodityName": "Samsung Galaxy A55", "commodityType": "ELECTRONICS", "contractNumber": "HC-2024-55201", "customerName": "Siti Nurhaliza", "dueDate": "2026-10-05", "paymentChannel": "VIRTUAL_ACCOUNT", "productType": "CONSUMER_FINANCE", "ptp": false, "totalInvoice": "416583", "type": "INSTALLMENT", "virtualAccount": "88771048291" } ] }Payment history
GET
/v1/payments/settledopenfinanceLists settled payments: totalContract plus each row's totalPaid, date, paymentChannel, contractNumber and commodityName.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- totalContract
- type
- contractNumber
- commodityType
- commodityName
- productType
- totalPaid
- date
- customerName
- paymentChannel
GET /v1/payments/settled HTTP/1.1 Authorization: Bearer <access_token>{ "totalContract": "12", "contracts": [ { "type": "INSTALLMENT", "contractNumber": "HC-2024-55201", "commodityType": "ELECTRONICS", "commodityName": "Samsung Galaxy A55", "productType": "CONSUMER_FINANCE", "totalPaid": "416583", "date": "2026-09-05", "customerName": "Siti Nurhaliza", "paymentChannel": "VIRTUAL_ACCOUNT" } ] }Credit card account details
GET
/v1/cards/primary/summaryopenfinanceLoads Home Credit card limits and utilisation: cardNumber, statusCard, cardLimit, cardAvailableLimit, retailBalance, cashUsage, installmentBalance and holdBalance.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- cardNumber
- statusCard
- contractNumber
- cardLimit
- cardAvailableLimit
- availableLimitProgress
- cardCashLimit
- cardAvailableCashLimit
- availableCashLimitProgress
- cardUsage
- retailBalance
- cashUsage
- installmentBalance
- holdBalance
- reason
GET /v1/cards/primary/summary HTTP/1.1 Authorization: Bearer <access_token>{ "cardDetails": { "cardNumber": "4556********1048", "statusCard": "ACTIVE", "contractNumber": "CC-2025-44102", "cardLimit": 15000000, "cardAvailableLimit": 11250000, "availableLimitProgress": 75, "cardCashLimit": 3000000, "cardAvailableCashLimit": 3000000, "availableCashLimitProgress": 100, "cardUsage": 3750000, "retailBalance": 3200000, "cashUsage": 0, "installmentBalance": 550000, "holdBalance": 0, "reason": null } }Credit card transaction list
GET
/v1/cards/primary/authorizationsopenfinanceLists Home Credit card authorisations with acceptorName/City/CountryCode, transactionTypeCodeDesc, billingDate, cashbackAmount and isEligibleEpp for convert-to-installment.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- transactionId
- transactionTypeCode
- transactionTypeCodeDesc
- transactionDate
- transactionTime
- billingDate
- acceptorName
- acceptorCity
- acceptorCountryCode
- transactionCategory
- amountType
- cashbackAmount
- isEligibleEpp
- title
- titleSection
GET /v1/cards/primary/authorizations HTTP/1.1 Authorization: Bearer <access_token>{ "transactionList": [ { "transactionId": "TXN-991002", "transactionTypeCode": "RETAIL", "transactionTypeCodeDesc": "Retail purchase", "transactionDate": "2026-10-11", "transactionTime": "19:42:03", "billingDate": "2026-10-20", "acceptorName": "Tokopedia", "acceptorCity": "Jakarta", "acceptorCountryCode": "ID", "transactionCategory": "ECOMMERCE", "amountType": "DEBIT", "cashbackAmount": "2500", "isEligibleEpp": true, "title": "Tokopedia", "titleSection": "Oktober 2026" } ] }E-wallet transaction history
GET
/v1/wallets/{accountNumber}/ledgeropenbankingReads the in-app wallet ledger for pulsa, PLN, PDAM, BPJS and QRIS: each entry has type, amount, serviceFee, senderAccount, destinationAccount and referenceId.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- accountNumber
- dateFrom
- dateTo
- type
- recipient
- statusTransaction
- transaction
- transactionDate
- amount
- serviceFee
- promo
- paymentMethod
- totalAmount
- destinationName
- destinationAccount
- senderAccount
- referenceId
- extendedData
GET /v1/wallets/8810448291/ledger HTTP/1.1 Authorization: Bearer <access_token>{ "accountNumber": "8810448291", "dateFrom": "2026-09-01", "dateTo": "2026-10-17", "transactionList": [ { "type": "PULSA", "recipient": "081298765432", "statusTransaction": "SUCCESS", "transaction": "Pulsa Telkomsel 50rb", "transactionDate": "2026-10-08T11:21:00+07:00", "amount": "50000", "serviceFee": "1500", "promo": "0", "paymentMethod": "WALLET", "totalAmount": "51500", "destinationName": "Telkomsel", "destinationAccount": "081298765432", "senderAccount": "8810448291", "referenceId": "EW-441290", "extendedData": "{}" } ] }FlexiFast cash-loan apply
POST
/v1/cash-loans/offersopenfinanceSubmits a FlexiFast cash-loan application and returns the priced offer: offerAmount, term, flatRate, minCreditAmount, maxCreditAmount and installmentAmount.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- campaignId
- date
- offerMessage
- offerAmount
- term
- flatRate
- pricePercentage
- maxCreditAmount
- minCreditAmount
- imageUrl
- installmentAmount
- lowAdvise
- upAdvise
- wordingHookOffer
- wordingRealOffer
- percentHookOffer
- percentRealOffer
- callMeStatus
POST /v1/cash-loans/offers HTTP/1.1 Authorization: Bearer <access_token> Content-Type: application/json { "offerAmount": 5000000, "term": 6 }{ "campaignId": "FF-2026-10", "date": "2026-10-17", "offerMessage": "Dana cair ke rekening", "offerAmount": 5000000, "term": 6, "flatRate": "0.9", "pricePercentage": "5.4", "maxCreditAmount": 20000000, "minCreditAmount": 1000000, "imageUrl": "https://cdn.example.com/offers/cash-loan.png", "installmentAmount": 916667, "lowAdvise": 1000000, "upAdvise": 8000000, "wordingHookOffer": "Pinjaman tunai", "wordingRealOffer": "FlexiFast 6 bulan", "percentHookOffer": 0.9, "percentRealOffer": 0.9, "callMeStatus": false }Credit card eligibility
GET
/v1/cards/eligibilityopenfinanceTells the credit-card home whether the customer is eligibleCreditCard, whether an accountInProcess application is open, and the linked contractNumber.
Auth: Authorization: Bearer accessToken from POST /v1/identity/oauth2/token (grant_type, client_id). The token body carries accessToken, expiresIn, refreshToken and type.
- accountInProcess
- contractNumber
- eligibleCreditCard
GET /v1/cards/eligibility HTTP/1.1 Authorization: Bearer <access_token>{ "accountInProcess": false, "contractNumber": "CC-2025-44102", "eligibleCreditCard": true }
Data categories
- paylater balances
- paylater transactions
- installment schedules
- pending bills
- payment history
- credit-card limits
- card transactions
- wallet ledgers
- cash-loan offers
- card eligibility
Where teams use this data
Bayar Nanti merchant reconciliation
Finance ops match merchantName, referenceNumber and amountTransaction against acquirer files, then check availableBalance, usedBalance and pastDueStatus before releasing settlement.
Installment collections and VA matching
Collectors pull dueDate, installmentAmount and valuePaid per contractNumber, then match inbound transfers to virtualAccount and totalInvoice on pending bills.
Home Credit card limit and spend analytics
Risk desks watch cardLimit versus cardAvailableLimit, retailBalance and cashUsage, and roll acceptorName plus transactionTypeCodeDesc into merchant-category spend.
Wallet and PPOB ledger audit
Treasury reconstructs pulsa, PLN and QRIS legs from senderAccount, destinationAccount, serviceFee and referenceId on the e-wallet history.
Frequently asked questions
What customer-finance records does Home Credit Indonesia expose after sign-in?
Signed-in sessions return Bayar Nanti balances (availableBalance, usedBalance, ownFund), installment rows (installmentNumber, dueDate, valuePaid), pending bills with virtualAccount and totalInvoice, Home Credit card limits (cardLimit, cardAvailableLimit, retailBalance), card merchant lines (acceptorName, transactionTypeCodeDesc), and e-wallet legs (senderAccount, destinationAccount, referenceId).
How does the Android client authenticate those calls?
The client exchanges grant_type and client_id (plus username/password on the password grant) for an accessToken, refreshToken, type and expiresIn, then sends Authorization: Bearer accessToken on the paylater, card and wallet calls. The app's PIN, OTP and biometric sign-in guard the session that mints that token.
Which Indonesia products sit on the same customer id?
A single cuid ties Bayar Nanti, installment contracts (commodityType, contractNumber), the Home Credit card, the in-app wallet used for pulsa/PLN/PDAM/BPJS, and FlexiFast cash-loan offers (offerAmount, term, flatRate).
Apps similar to Home Credit-Pinjaman & Kredit
- Kredivo - Paylater & Pinjaman — Kredivo is an OJK-supervised Indonesian paylater and cash-loan (KTA) line of up to Rp50 million, repaid in 30 days or in 3–24 month installments at 4,000+ online and offline merchants.
- Akulaku — Akulaku combines installment shopping, cash loans (pinjaman tunai) and PayLater in one Indonesian fintech app, with consumer-complaint handling by PT Akulaku Silvrr Indonesia.
- Indodana PayLater — Indodana PayLater is an OJK-supervised Indonesian buy-now-pay-later line from Indodana Finance of up to Rp50 million, repaid in 30 days or in 3–24 month installments at partner merchants.
- JULO — JULO is an OJK-supervised Indonesian digital-credit app whose one limit can be drawn as cash, e-wallet top-ups, or paylater spend on Tokopedia, Shopee, Lazada, Blibli and TikTok Shop, with installments of up to 12 months.
- Easycash - Pinjaman Daring — Easycash is PT Indonesia Fintopia Technology's OJK-supervised unsecured cash-loan platform, with a published limit of up to Rp100 million.
- Tunaiku - Pinjaman Dana Online — Tunaiku is the online cash-loan brand of PT Bank Amar Indonesia Tbk., an OJK-licensed Indonesian digital bank listed alongside Amar Bank's other retail products.
- AdaKami — AdaKami is an OJK-licensed Indonesian online cash-loan platform that uses a published 30-day installment cycle and states it does not deduct fees up front.
- Singa Fintech-Digital Loans — Singa Fintech is an Indonesian unsecured online cash-loan (pinjaman daring) app with a published limit of up to Rp48 million and tenors shown from 1 to 12 months.
Topics
- Home Credit Indonesia API
- Bayar Nanti availableBalance
- Home Credit installment schedule
- Home Credit cardLimit
- PT Home Credit Indonesia data
- Indonesian paylater fields
- Home Credit virtualAccount
- FlexiFast offerAmount
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