Singa Fintech 数据 API:贷款额度、KYC 与虚拟账户
Singa Fintech-Digital Loans 是 PT Abadi Sejahtera Finansindo(ASF)推出的印度尼西亚现金贷应用。借款人先用手机号通过短信或 WhatsApp 验证码登录并设置密码,再依次填写 KTP 身份证、工作、银行账户和紧急联系人表单后提交申请;获批的款项会放款到指定姓名的银行账户,并通过虚拟账户(virtual account)还款,借款期限需要延长时可在应用内展期。同一个安卓客户端还覆盖 Privy 身份交接、TekenAja 电子签署的借款合同、人脸活体检测、优惠券和推荐计划,并引导用户关注 Instagram @singa.id、TikTok @singa.fintech 以及 LinkedIn 上的 Abadi Sejahtera Finansindo。它在印尼 pinjaman online 用户中与 Kredivo、Easycash 和 Tunaiku 竞争。
已获批的 quota 和 waitRepaymentTotalAmount 位于首页快照中,紧邻产品的 duration 与 interest_rate;每笔在途订单则带有 payable_amount、order_status 和虚拟账户 va_num。KYC 记录保存 ktp_number、ktp_image_url,以及个人、工作、银行和联系人四项的完整度评分;还款界面再加上优惠券的 totalReduction 和展期的 is_pass。
催收团队把未还期限与虚拟账户入账核对,核保团队把 KTP OCR 结果并入同一份借款人档案,openData Studio 则把这些字段变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
发送登录短信验证码
POST
/v1/auth/otp/smsosint手机号登录的短信 OTP 步骤,先于密码登录。请求体是手机号;JSON 返回 `timeLimit`(以及语音来电备用方式的可选 `incoming_call_phone`)。
认证方式: 登录前调用。JSON 请求体为借款人的手机号,尚无 Bearer。WhatsApp 验证码使用同级路径 `/v1/auth/otp/whatsapp`。
- mobilePhone
- incoming_call_phone
- timeLimit
POST /v1/auth/otp/sms HTTP/1.1 Content-Type: application/json platform: android { "mobilePhone": "081234567890" }{ "code": 0, "message": "OK", "data": { "incoming_call_phone": null, "timeLimit": 60 } }密码登录
POST
/v1/auth/passwordosint用 `mobile_phone` 和 AES 包装的密码让借款人登录。登录响应返回 `token` 与 `user_id`,之后每次调用都会把它们附为 Authorization: Bearer 和 `userId` 请求头。
认证方式: JSON 请求体为 `mobile_phone` 加 AES 加密的 `password`(`ky` 是 MD5 包装密钥)。响应中的 `token` 保存在设备上,并作为 Authorization: Bearer 重放;`user_id` 作为 `userId` 请求头发送。
- mobile_phone
- password
- token
- user_id
- name
- phone
- is_new_user
- isRegister
- phone_verified
- email_verified
- role
POST /v1/auth/password HTTP/1.1 Content-Type: application/json platform: android { "mobile_phone": "081234567890", "password": "<aes>", "ky": "<md5>", "imei": "uuid-device", "uuid": "uuid-device", "long": 0.0, "accuracy": 0.0 }{ "code": 0, "message": "OK", "data": { "token": "eyJhbGciOiJIUzI1NiJ9.sess", "user_id": "882144", "name": "Siti Nurhaliza", "phone": "081234567890", "is_new_user": false, "isRegister": true, "phone_verified": 1, "email_verified": 0, "role": 1 } }首页贷款快照
POST
/v1/home/snapshotopenfinance加载首页:产品的 `duration` 与 `interest_rate`、按商户划分的 `UserQuota`(`quota`、`available`、`waitRepaymentTotalAmount`)、信用审核状态,以及在途订单摘要。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。已登录时请求体包含 `user_id`。
- IsNewUser
- name
- duration
- interest_rate
- quota
- available
- waitRepaymentTotalAmount
- isMakeLoan
- status
- order_id
- auditStatus
- rejectExpiredAt
POST /v1/home/snapshot HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 uuId: uuid-device Content-Type: application/json { "user_id": "882144" }{ "code": 0, "message": "OK", "data": { "IsNewUser": 0, "UserInfo": { "name": "Siti Nurhaliza" }, "Product": { "duration": 90, "interest_rate": "0.3" }, "UserQuota": { "default": { "quota": 5000000, "available": 3500000, "waitRepaymentTotalAmount": 1500000, "isMakeLoan": true, "status": 1, "order_id": "ord-882144" } }, "CreditAuditInfo": { "auditStatus": 2, "rejectExpiredAt": null }, "Order": {} } }KYC 完整度
GET
/v1/profile/completenessosint返回个人、工作、银行和联系人四项的完成百分比,以及 `ktp_image_url`。这些分区填写完整之前,借款申请流程会一直被拦截。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token;附带 `userId` 请求头。
- personal
- work
- bank
- contacts
- is_new_user
- ktp_image_url
- faceComparison
GET /v1/profile/completeness HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144{ "code": 0, "message": "OK", "data": { "personal": 100, "work": 100, "bank": 80, "contacts": 100, "is_new_user": false, "ktp_image_url": "https://files.example.com/ktp/882144.png", "faceComparison": 1 } }借款人资料分区
GET
/v1/profile/sectionsosint以带标签的 key/value 行读取一个 KYC 分区。查询参数 `type` 选择 `user_basic_info`、`user_work_info`、`user_contacts_info` 或 `user_bank_card_info`。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。查询参数 `type` 选择分区:`user_basic_info`、`user_work_info`、`user_contacts_info` 或 `user_bank_card_info`。
- type
- user_basic_info
- user_work_info
- user_contacts_info
- user_bank_card_info
- ktp_number
- name
- birthday
- mothers_name
GET /v1/profile/sections?type=user_basic_info HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144{ "code": 0, "message": "OK", "data": { "user_basic_info": [ { "key": "name", "value": "Siti Nurhaliza", "type": "text" }, { "key": "ktp_number", "value": "3174010101900001", "type": "text" }, { "key": "birthday", "value": "1990-01-01", "type": "date" }, { "key": "mothers_name", "value": "Aisyah", "type": "text" } ], "user_work_info": [], "user_contacts_info": [], "user_bank_card_info": [] } }KTP 图片 OCR
POST
/v1/kyc/idcard/ocrosint对上传的 KTP 图片运行 OCR,返回用于预填个人信息表单的身份字段。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。请求体中的 `img_url` 用 `ky` 做 AES 包装;可选的 `isWrite` 标记对已有订单的 KTP 更新。
- img_url
- ky
- isWrite
- ktp_number
- name
- birthday
- birthplace
- ktp_image_url
POST /v1/kyc/idcard/ocr HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "img_url": "<aes>", "ky": "<md5>", "isWrite": "2" }{ "code": 0, "message": "OK", "data": { "ktp_number": "3174010101900001", "name": "Siti Nurhaliza", "birthday": "1990-01-01", "birthplace": "Jakarta", "ktp_image_url": "https://files.example.com/ktp/882144.png" } }提交商户贷款
POST
/v1/loans/applyopenfinance在 KYC 之后提交所选的商户产品(`amount`、`duration`、`merchantId`)。响应返回 `orderId` 与 `isHightRisk`;高风险档案会打开应用内的信用评估页面。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。请求体中的 `products` 是申请界面所选的期限列表。
- products
- amount
- duration
- merchantId
- loanId
- couponId
- refPurposeId
- invitation_code
- orderId
- isHightRisk
- have_comment
- userQuota
- loan_info
POST /v1/loans/apply HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "products": [ { "amount": 2000000, "duration": 90, "merchantId": 12, "loanId": 901, "couponId": null, "refPurposeId": 3 } ], "uuid": "uuid-device", "versionName": "3.2.3", "app_instance_id": "fi-instance", "model": "Pixel 8", "invitation_code": "SG-9F21", "media_source": "googleplay", "campaign": "organic" }{ "code": 0, "message": "OK", "data": { "merchantId": 12, "orderId": "ord-882144", "isHightRisk": false, "have_comment": false, "userQuota": { "quota": 5000000, "available": 3000000 }, "loan_info": { "amount": 2000000, "duration": 90 } } }借款订单详情
GET
/v1/loans/detailopenfinance加载借款详情界面:本金与费用明细、`order_status`、放款用的 `bank_info`,以及用于还款的当前虚拟账户 `va_info`。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。查询参数携带借款详情界面所示的订单 ID。
- id
- order_num
- amount
- contract_amount
- payable_amount
- repayment_amount
- interest_amount
- mgmtfee_amount
- penalty_amount
- interest_rate
- order_status
- apply_at
- repay_at
- va_num
- due_amount
- account_name
- account_number
- is_allow_extension
- protocol_url
GET /v1/loans/detail?order_id=ord-882144 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144{ "code": 0, "message": "OK", "data": { "order": [ { "id": "ord-882144", "order_num": "SG20261016001", "amount": 2000000, "contract_amount": 2300000, "payable_amount": 2300000, "repayment_amount": 0, "interest_amount": 180000, "mgmtfee_amount": 120000, "penalty_amount": 0, "interest_rate": "0.3", "order_status": 4, "apply_at": "2026-09-01T09:00:00+07:00", "repay_at": "2026-12-01T00:00:00+07:00", "va_info": { "va_num": "8800123456789012", "due_amount": "2300000", "repayment_va_expire_at": "2026-12-02T23:59:59+07:00" } } ], "bank_info": { "account_name": "SITI NURHALIZA", "account_number": "1234567890" }, "is_allow_extension": 1, "protocol_url": "https://h5.example.com/agreement/ord-882144" } }借款历史列表
GET
/v1/loans/historyopenfinance分页返回历史界面上已结清和进行中的借款。每一行带有 `id`、`amount`、`order_status` 和日期。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。查询参数为 `page` 和 `offset=10`。
- page
- offset
- loans
- id
- order_num
- amount
- final_amount
- order_status
- apply_at
- repay_at
GET /v1/loans/history?page=1&offset=10 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144{ "code": 0, "message": "OK", "data": { "loans": [ { "id": "ord-882144", "order_num": "SG20261016001", "amount": 2000000, "final_amount": 2300000, "order_status": 7, "apply_at": "2026-06-01T09:00:00+07:00", "repay_at": "2026-09-01T00:00:00+07:00" } ] } }还款详情
POST
/v1/repayments/scheduleopenbanking构建还款界面:父订单金额、可选的子分期、优惠券资格和提前结清标志。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- order_id
- payable_amount
- repayment_amount
- penalty_amount
- is_allow_extension
- children
- due_amount
- interest_amount
- mgmtfee_amount
- expire_at
- can_use
- is_can_settled
POST /v1/repayments/schedule HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "order_id": "ord-882144" }{ "code": 0, "message": "OK", "data": { "order": { "id": "ord-882144", "payable_amount": 2300000, "repayment_amount": 0, "penalty_amount": 0, "is_allow_extension": 1 }, "children": [ { "id": "stg-1", "index": 1, "due_amount": 2300000, "interest_amount": 180000, "mgmtfee_amount": 120000, "penalty_amount": 0, "order_status": 4, "expire_at": "2026-12-01T00:00:00+07:00" } ], "coupon": { "can_use": true }, "early_settlement_judgment": { "is_can_settled": 1 } } }虚拟账户详情
POST
/v1/repayments/virtual-accountopenbanking返回虚拟账户界面所需的应付虚拟账户号码、银行渠道和有效期,以及已抵扣的优惠券 `totalReduction`。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- va_num
- due_amount
- repayment_va_expire_at
- payment_va
- payment_time
- bank_code
- bank_name
- bank_logo
- expire_at
- totalReduction
- is_extension
POST /v1/repayments/virtual-account HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "order_id": "ord-882144" }{ "code": 0, "message": "OK", "data": { "va_info": { "va_num": "8800123456789012", "due_amount": "2300000", "repayment_va_expire_at": "2026-12-02T23:59:59+07:00" }, "payment_info": { "payment_va": "8800123456789012", "payment_time": null, "payment_methods": { "bank_code": "BCA", "bank_name": "Bank Central Asia", "bank_logo": "https://files.example.com/bank/bca.png" } }, "expire_at": "2026-12-02T23:59:59+07:00", "totalReduction": 0, "is_extension": 0 } }虚拟账户付款历史
POST
/v1/repayments/transactionsopenbanking为付款历史界面分页返回虚拟账户付款行(发放的虚拟账户、应付金额、已付金额、`repay_at`)。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- page
- offset
- order_id
- id
- repayment_va
- due_amount
- repayment_amount
- repay_at
- created_at
- is_extension_info
POST /v1/repayments/transactions HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "page": 1, "offset": 10, "order_id": "ord-882144" }{ "code": 0, "message": "OK", "data": [ { "id": "va-1001", "repayment_va": "8800123456789012", "due_amount": "2300000", "repayment_amount": 2300000, "repay_at": "2026-11-28T14:22:00+07:00", "created_at": "2026-11-01T09:00:00+07:00", "is_extension_info": 0 } ] }提现到银行账户
POST
/v1/disbursements/payoutopenfinance在提现界面把已获批的贷款放款到借款人的银行账户。请求体为 `amount` 加 `bank_info`(`ref_bank_id`、`account_name`、`account_number`、`reserved_phone_number`)。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- amount
- ref_bank_id
- account_name
- account_number
- reserved_phone_number
- order_id
POST /v1/disbursements/payout HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "amount": 2000000, "bank_info": { "ref_bank_id": "014", "account_name": "SITI NURHALIZA", "account_number": "1234567890", "reserved_phone_number": "081234567890" } }{ "code": 0, "message": "OK", "data": { "order_id": "ord-882144", "amount": 2000000 } }申请借款展期
POST
/v1/loans/rolloveropenfinance在展期预览界面提交展期申请。`is_pass` 为 pass 或 reject;展期被拒绝时会显示 `reject_reason`。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- order_id
- is_pass
- reject_reason
- after_order_id
POST /v1/loans/rollover HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144 Content-Type: application/json { "order_id": "ord-882144" }{ "code": 0, "message": "OK", "data": { "is_pass": "pass", "reject_reason": null, "order_id": "ord-882144", "after_order_id": "ord-882145" } }推荐码
POST
/v1/referrals/codeopendata返回邀请界面所示借款人的 `referral_code`,之后在提交借款时作为 `invitation_code` 发送。
认证方式: 来自 `POST /v1/auth/password` 的 Authorization: Bearer token。
- referral_code
POST /v1/referrals/code HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.sess userId: 882144{ "code": 0, "message": "OK", "data": { "referral_code": "SG-9F21" } }
数据类别
- 贷款额度
- KYC 档案
- 借款订单
- 虚拟账户还款
- 放款
- 推荐奖励
数据使用场景与案例
额度与待还金额对账
夜间任务拉取首页的 UserQuota.quota、available 和 waitRepaymentTotalAmount,再与实时 OrderDetail 的 payable_amount 和 order_status 匹配,使放贷方台账不会与借款人屏幕上看到的数字产生偏差。
虚拟账户入账匹配
催收机器人读取 getVaDetail 返回的 va_num、due_amount 和 repayment_va_expire_at,并追加 getOrderVa 的行(repayment_va、repayment_amount、repay_at),在 BCA 或其他虚拟账户收到入账时核销分期。
KTP 开户进入 CRM
核保团队从 getUserInfoByKtp 取得 ktp_number、name 和 birthday,再结合个人/工作/银行/联系人四项完整度评分,避免同一个 NIK 重复建立两份档案。
展期与放款运营
运营控制台监控 submitWithdraw 的 bank_info(account_name、account_number)和 extensionApply 的 is_pass,使放款与展期保持在同一个案件中,与应用内的 WithDrawAct 和 RolloverPreviewAct 流程一一对应。
常见问题
Singa 如何验证借款人身份?
登录先向借款人的手机号发送短信或 WhatsApp 一次性验证码,再用 mobile_phone 加 AES 加密的密码完成密码登录。JSON 响应返回 token 和 user_id;之后的调用把 token 作为 Authorization: Bearer 请求头发送,并把用户 ID 作为 userId 请求头。
哪些字段描述一笔在途贷款?
贷款详情返回 amount、contract_amount、payable_amount、interest_amount、mgmtfee_amount、penalty_amount、order_status、apply_at 和 repay_at,以及还款用的虚拟账户 va_num,还有放款用的 bank_info 中的 account_name / account_number。
印尼的 KYC 数据如何表示?
个人、工作、银行和联系人四项的完整度评分决定能否提交申请。资料分区以带标签的 key/value 行表示(ktp_number、birthday、mothers_name),上传 KTP 证件图片后会运行 OCR,并填充这些同样的身份字段。
还款是如何收取的?
还款界面针对某个银行渠道(bank_code、bank_name)发放 va_num、due_amount 和 repayment_va_expire_at;另有一个接口分页返回历史虚拟账户付款;展期请求则记录 is_pass,被拒绝时给出 reject_reason。
与 Singa Fintech-Digital Loans 相似的应用
- Kredivo - Paylater & Pinjaman — Kredivo 是 PT Kredivo Finance Indonesia 持 OJK 牌照的消费信贷额度,可 30 天一次结清,也可按 3–24 期在逾一万家印尼商户分期,并另有个人贷款(pinjaman)提现。
- Easycash - Pinjaman Daring — Easycash 是持 OJK 牌照的印尼无抵押现金贷应用,额度 10 万至 1 亿印尼盾、期限 3–12 个月,公布最高年化利率 36%。
- Tunaiku - Pinjaman Dana Online — Tunaiku 是 PT Bank Amar Indonesia Tbk. 持 OJK 牌照的无抵押现金贷(KTA)应用,放款 200 万至 3,000 万印尼盾,期限 6–30 个月。
- Akulaku — Akulaku 把 30 万至 4,000 万印尼盾现金贷、最高 2,500 万先买后付(PayLater)和商户分期放在同一款印尼应用里,放贷方为持 OJK 牌照的 PT Akulaku Finance Indonesia。
- AdaKami — AdaKami 是持 OJK 牌照的印尼数字现金贷应用,公布额度为 300 万至 8,000 万印尼盾,可按 3、6、12 期还款,最高年化利率 36%。
- JULO — JULO 是受 OJK 监管的印尼数字信贷应用,同一额度最高 5,000 万印尼盾,可提现到银行、充电子钱包、缴账单或先买后付。
- Indodana PayLater — Indodana PayLater 是受 OJK 监管的印尼先买后付额度,最高 5,000 万印尼盾,可按 3–12 期在 Tokopedia、Cermati、iBox 等合作商户分期。
- Home Credit Indonesia — 印尼 Home Credit 在逾两万家门店为手机、笔记本等商品提供分期,并另有现金融资与先买后付额度,接受 OJK 监管。
相关主题
- Singa API
- Singa Fintech 贷款数据
- PT Abadi Sejahtera Finansindo
- 印尼 pinjaman KYC
- 虚拟账户还款
- KTP OCR 字段
- 贷款额度 API
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业