Singa Fintech-Digital Loans 图标

Singa Fintech 数据 API:贷款额度、KYC 与虚拟账户

PT Abadi Sejahtera Finansindo · 信贷

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 则把这些字段变成可调用的开放数据。

应用截图

  • Singa Fintech-Digital Loans 应用截图 1
  • Singa Fintech-Digital Loans 应用截图 2
  • Singa Fintech-Digital Loans 应用截图 3
  • Singa Fintech-Digital Loans 应用截图 4
  • Singa Fintech-Digital Loans 应用截图 5
  • Singa Fintech-Digital Loans 应用截图 6
  • Singa Fintech-Digital Loans 应用截图 7

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 发送登录短信验证码

    POST /v1/auth/otp/sms osint

    手机号登录的短信 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/password osint

    用 `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/snapshot openfinance

    加载首页:产品的 `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/completeness osint

    返回个人、工作、银行和联系人四项的完成百分比,以及 `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/sections osint

    以带标签的 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/ocr osint

    对上传的 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/apply openfinance

    在 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/detail openfinance

    加载借款详情界面:本金与费用明细、`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/history openfinance

    分页返回历史界面上已结清和进行中的借款。每一行带有 `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/schedule openbanking

    构建还款界面:父订单金额、可选的子分期、优惠券资格和提前结清标志。

    认证方式: 来自 `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-account openbanking

    返回虚拟账户界面所需的应付虚拟账户号码、银行渠道和有效期,以及已抵扣的优惠券 `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/transactions openbanking

    为付款历史界面分页返回虚拟账户付款行(发放的虚拟账户、应付金额、已付金额、`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/payout openfinance

    在提现界面把已获批的贷款放款到借款人的银行账户。请求体为 `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/rollover openfinance

    在展期预览界面提交展期申请。`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/code opendata

    返回邀请界面所示借款人的 `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 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价