BukuWarung Apps for MSMEs 图标

BukuWarung 数据 API:Saldo 钱包、Tagih 与 QRIS

PT Buku Usaha Digital · 支付

BukuWarung Apps for MSMEs 是雅加达 PT Buku Usaha Digital 面向印尼 warung 与摊位的记账应用。店主用 Catat Utang 赊账本滚动记录客户欠款,用 Catat Transaksi 记销售,用 Mode Kasir 开收银台、Kelola Stok 管库存,再通过 Tagih(向客户发收款单)、Bayar(向供应商打款)和印尼银行 QRIS 码牌完成收付。Saldo 钱包为 PPOB 柜台提供资金,可代售 Pulsa、电费代币、电子钱包充值、Paket Data、BPJS、PDAM 与火车票;KTP KYC 与 KYB 通过后额度提高,收银台旁可接 EDC,BukuPoin 积分跟踪推荐。界面为印尼语、金额为印尼盾,仅服务印尼,一边与 Khatabook 一类电子赊账本竞争,一边与 GoPay Merchant、DANA Bisnis 等商户 QRIS 应用争夺同一批小店。

Saldo 钱包把 amount 与 subBalance 的 cashback 口袋拆开,再用 debitDaily、debitMonthlyLimit 和 isSaldoFreezed 拦住消费。Tagih 收款行盖上 paymentRequestId、invoiceUrl、expiredAt 与 receivedAmount,报价含 fee、discountFee、totalTransfer、remainingFreeQuota 与 loyaltyDiscount;Bayar 打款返回 disbursementId、checkoutUrl 与 virtualAccount。KYC 限额落在 paymentInLimits、paymentOutLimits 与 totalTrxCountLimit。

QRIS 码牌带 qrisCode、kycStatus、kybStatus 与 qrisStatus,结算看板再把 disbursedPayments 与 toBeDisbursedPayments 分开。入账银行列出 accountHolderName、bankCode、isQrisBank 与 matchingStatus。现金账同步提交 balance、capitalBalance 与 cashCategoryId,让收银台与云端账本对齐。BukuPoin 跟踪 activePoints 与 tierId;BNPL 行给出 availableLimit 与 maxLoanLimit;PPOB 收据补上 purchaseType、items 与 totalBonus。放贷与 ERP 机器人夜间核对收款、打款和 QRIS 行;PPOB 聚合商读取订单 status 与 items;资金岗盯 qrisStatus 与待结算拆分;openData Studio 把同一批字段变成可调用的开放数据。

应用截图

  • BukuWarung Apps for MSMEs 应用截图 1
  • BukuWarung Apps for MSMEs 应用截图 2
  • BukuWarung Apps for MSMEs 应用截图 3
  • BukuWarung Apps for MSMEs 应用截图 4
  • BukuWarung Apps for MSMEs 应用截图 5
  • BukuWarung Apps for MSMEs 应用截图 6
  • BukuWarung Apps for MSMEs 应用截图 7

API 端点一览

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

  • OTP 校验与会话令牌

    POST /v1/session/otp osint

    用短信 OTP 换取 idToken 与 sessionToken,后续 Saldo、Tagih、Bayar 与 QRIS 调用都依赖它们。

    认证方式: 无需事先登录。请求体含 phone、otp、countryCode、deviceId、userId、action、clientId 与 clientSecret。响应 idToken 作为 X-Authorization-Firebase 发送;sessionToken(及后续 accessToken)以 Authorization: Bearer 发出。过期会话用 refreshToken 重试。

    • phone
    • otp
    • countryCode
    • deviceId
    • userId
    • action
    • clientId
    • clientSecret
    • success
    • idToken
    • sessionToken
    • newUser
    • message
    POST /v1/session/otp HTTP/1.1
    Content-Type: application/json
    
    {
      "phone": "081234567890",
      "otp": "123456",
      "countryCode": "+62",
      "deviceId": "dvc-8c21f0ab",
      "userId": "usr-10482",
      "action": "LOGIN",
      "clientId": "<client-id>",
      "clientSecret": "<client-secret>"
    }
    {
      "success": true,
      "idToken": "<id-token>",
      "sessionToken": "<session-token>",
      "newUser": false,
      "message": "ok"
    }
  • 已登录用户资料

    GET /v1/shopkeepers/me osint

    读取已登录店主卡片:userId、手机号、邮箱、dateOfBirth 与头像,供记账与收付页共用。

    认证方式: OTP 登录签发的 Bearer sessionToken;另附 X-Authorization-Firebase idToken。

    • userId
    • userName
    • userPhone
    • userEmail
    • dateOfBirth
    • userProfileImageUrl
    • gender
    • createdAt
    GET /v1/shopkeepers/me HTTP/1.1
    Authorization: Bearer <session-token>
    X-Authorization-Firebase: <id-token>
    {
      "userId": "usr-10482",
      "userName": "Budi Santoso",
      "userPhone": "081234567890",
      "userEmail": "[email protected]",
      "dateOfBirth": "1990-04-12",
      "userProfileImageUrl": "https://cdn.example/u/10482.jpg",
      "gender": "M",
      "createdAt": "2022-07-01T08:00:00Z"
    }
  • 收付账户元数据

    GET /v1/ledger/account-flags openfinance

    加载手续费、KYC 与 QRIS 开关,以及 Tagih / Bayar 前展示的 remainingFreeQuota、remainingFullCbQuota 与 cashbackAmount。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • fee
    • kyc
    • qris
    • remainingFreeQuota
    • remainingFullCbQuota
    • cashbackAmount
    GET /v1/ledger/account-flags HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "fee": {
        "collectFee": 2500
      },
      "kyc": {
        "kycVerified": true
      },
      "qris": {
        "enabled": true
      },
      "remainingFreeQuota": 8,
      "remainingFullCbQuota": 2,
      "cashbackAmount": 10000.0
    }
  • 收付白名单限额

    GET /v1/ledger/cap-table openfinance

    返回受 KYC 约束的 Tagih(paymentInLimits)与 Bayar(paymentOutLimits)上限,以及触及后拦住收款或打款的 totalTrxCountLimit。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • whitelistLimits
    • paymentInLimits
    • paymentOutLimits
    • totalTrxCountLimit
    GET /v1/ledger/cap-table HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "whitelistLimits": {
        "paymentInLimits": {
          "dailyLimit": 50000000
        },
        "paymentOutLimits": {
          "dailyLimit": 25000000
        },
        "totalTrxCountLimit": 40
      }
    }
  • 创建 Tagih 收款单

    POST /v1/invoices/{accountId}/requests/{customerId} openbanking

    为一名客户创建 Tagih 收款单,返回分享等待页所用的 paymentRequestId、invoiceUrl、expiredAt 与 status。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • accountId
    • customerId
    • customerName
    • transactionId
    • paymentRequestId
    • amount
    • fee
    • discount
    • receivedAmount
    • invoiceUrl
    • shareUrlTemplate
    • expiredAt
    • status
    • description
    • bankAccountId
    • paymentMethod
    • paymentChannel
    • transactionType
    • paymentCategoryId
    • referenceId
    • receiverBank
    POST /v1/invoices/acc-88100214/requests/cust-1a2b HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    Content-Type: application/json
    
    {
      "accountId": "acc-88100214",
      "customerId": "cust-1a2b",
      "customerName": "Mona Said",
      "amount": 150000,
      "description": "Tagihan mingguan",
      "bankAccountId": "ba-991",
      "paymentMethod": "VA",
      "paymentChannel": "BCA"
    }
    {
      "accountId": "acc-88100214",
      "customerId": "cust-1a2b",
      "customerName": "Mona Said",
      "transactionId": "trx-20261012-4419",
      "paymentRequestId": "pr-88c21",
      "amount": 150000,
      "fee": 2500,
      "discount": 0,
      "receivedAmount": 0,
      "invoiceUrl": "https://pay.example/i/pr-88c21",
      "shareUrlTemplate": "https://pay.example/s/{id}",
      "expiredAt": "2026-10-13T17:00:00Z",
      "status": "PENDING",
      "description": "Tagihan mingguan",
      "bankAccountId": "ba-991",
      "paymentMethod": "VA",
      "paymentChannel": "BCA",
      "transactionType": "IN",
      "paymentCategoryId": "cat-utang",
      "referenceId": "ref-10482",
      "receiverBank": {
        "bankName": "BCA"
      }
    }
  • Tagih 收款手续费预览

    POST /v1/invoices/{accountId}/requests/{customerId}/quote openfinance

    在店主确认 Tagih 收款前报出 fee、discountFee、totalTransfer、remainingFreeQuota 与 saldoCashbackAmount。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • amount
    • fee
    • discountFee
    • discountFeeText
    • totalTransfer
    • remainingFreeQuota
    • saldoCashbackAmount
    • destinationBankInformation
    • loyaltyDiscount
    POST /v1/invoices/acc-88100214/requests/cust-1a2b/quote HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "amount": 150000,
      "paymentMethod": "VA",
      "paymentChannel": "BCA"
    }
    {
      "amount": 150000,
      "fee": 2500.0,
      "discountFee": 500.0,
      "discountFeeText": "Kuota gratis",
      "totalTransfer": 152000,
      "remainingFreeQuota": 8,
      "saldoCashbackAmount": 1000.0,
      "destinationBankInformation": {
        "bankName": "BCA"
      },
      "loyaltyDiscount": {
        "amount": 500.0
      }
    }
  • 创建 Bayar 打款

    POST /v1/payouts/{accountId}/transfers/{customerId} openbanking

    向供应商或客户银行发起 Bayar 打款,返回 disbursementId、checkoutUrl、virtualAccount 与 status。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • disbursementId
    • customerId
    • status
    • amount
    • fee
    • discount
    • transactionId
    • invoiceUrl
    • checkoutUrl
    • paymentInstructionsUrl
    • paymentMethod
    • paymentChannel
    • transactionType
    • description
    • virtualAccount
    • receiverBank
    • refundBankAccount
    • progress
    POST /v1/payouts/acc-88100214/transfers/cust-9c3d HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "customerId": "cust-9c3d",
      "amount": 275000,
      "description": "Bayar supplier beras",
      "paymentMethod": "BANK_TRANSFER",
      "paymentChannel": "MANDIRI"
    }
    {
      "disbursementId": "disb-20261012-19",
      "customerId": "cust-9c3d",
      "status": "PENDING",
      "amount": 275000,
      "fee": 3500,
      "discount": 0,
      "transactionId": "trx-out-7712",
      "invoiceUrl": "https://pay.example/d/disb-20261012-19",
      "checkoutUrl": "https://pay.example/c/disb-20261012-19",
      "paymentInstructionsUrl": "https://pay.example/i/disb-20261012-19",
      "paymentMethod": "BANK_TRANSFER",
      "paymentChannel": "MANDIRI",
      "transactionType": "OUT",
      "description": "Bayar supplier beras",
      "virtualAccount": {
        "vaNumber": "8800123456789012"
      },
      "receiverBank": {
        "bankName": "Mandiri"
      }
    }
  • QRIS 码牌状态

    GET /v1/plates/qris opendata

    读取店铺 QRIS 码牌:qrisCode、virtualAccountId,以及控制码牌显示的 kycStatus / kybStatus / qrisStatus。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • virtualAccountId
    • kyc
    • qrisCode
    • kycStatus
    • kybStatus
    • qrisStatus
    • matchingStatus
    • finalStatus
    • metadata
    GET /v1/plates/qris HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "virtualAccountId": "va-qris-4419",
      "kyc": true,
      "qrisCode": "00020101021226680016COM.NOBUE.WWW01189360091400000012340214QRIS4419",
      "kycStatus": "APPROVED",
      "kybStatus": "APPROVED",
      "qrisStatus": "ACTIVE",
      "matchingStatus": "MATCHED",
      "finalStatus": "ACTIVE",
      "metadata": {
        "nmid": "ID1021234567890"
      }
    }
  • QRIS 批次结算看板

    GET /v1/plates/qris/settlements openbanking

    把已结算的 QRIS 扫码(disbursedPayments)与仍待打款(toBeDisbursedPayments)拆开,并汇总 incoming 的 transactionCount / transactionAmount。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • disbursedPayments
    • toBeDisbursedPayments
    • totalIncomingPayments
    • transactionCount
    • transactionAmount
    • percentage
    GET /v1/plates/qris/settlements HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "disbursedPayments": {
        "transactionCount": 42,
        "transactionAmount": 8750000.0,
        "percentage": 70.0
      },
      "toBeDisbursedPayments": {
        "transactionCount": 18,
        "transactionAmount": 3125000.0,
        "percentage": 30.0
      },
      "totalIncomingPayments": {
        "transactionCount": 60,
        "transactionAmount": 11875000.0
      }
    }
  • 收付与 PPOB 订单历史

    GET /v1/ledger/{accountId}/history opendata

    列出 Tagih、Bayar、QRIS、Saldo 与 PPOB 行(type 为 IN / OUT / QRIS / SALDO / PULSA / LISTRIK / BPJS / PDAM),status 从 PENDING 到 COMPLETED 或 REFUNDED。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • orderId
    • customerId
    • displayName
    • amount
    • timestamp
    • status
    • type
    • serialNumber
    • ledgerAccountId
    GET /v1/ledger/acc-88100214/history HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    [
      {
        "orderId": "ord-20261012-01",
        "customerId": "cust-1a2b",
        "displayName": "Mona Said",
        "amount": 150000,
        "timestamp": "2026-10-12T09:14:00Z",
        "status": "COMPLETED",
        "type": "IN",
        "serialNumber": "SN-4419",
        "ledgerAccountId": "led-8810"
      },
      {
        "orderId": "ord-20261012-02",
        "customerId": "cust-ppob",
        "displayName": "Pulsa Telkomsel",
        "amount": 50500,
        "timestamp": "2026-10-12T10:02:00Z",
        "status": "PAID",
        "type": "PULSA"
      }
    ]
  • Finpro 订单详情

    GET /v1/ledger/{accountId}/history/{orderId} openfinance

    加载一笔 PPOB 或收付订单:收据与轮询页所用的 items、payments、kybStatus、totalBonus 与 loyalty。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • orderId
    • transactionId
    • status
    • amount
    • fee
    • cost
    • description
    • createdAt
    • purchaseType
    • kybStatus
    • totalBonus
    • items
    • payments
    • customer
    • loyalty
    • progress
    • refunds
    GET /v1/ledger/acc-88100214/history/ord-20261012-02 HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "orderId": "ord-20261012-02",
      "transactionId": "trx-ppob-7712",
      "status": "COMPLETED",
      "amount": 50500.0,
      "fee": 500.0,
      "cost": 50000.0,
      "description": "Pulsa Telkomsel 50rb",
      "createdAt": "2026-10-12T10:02:00Z",
      "purchaseType": "PULSA",
      "kybStatus": "APPROVED",
      "totalBonus": 1000.0,
      "items": [
        {
          "productName": "Telkomsel 50rb"
        }
      ],
      "payments": [
        {
          "paymentMethod": "SALDO"
        }
      ],
      "customer": {
        "customerId": "cust-ppob"
      },
      "loyalty": {
        "amount": 500.0
      }
    }
  • 现金账交易同步

    POST /v1/till/entries/sync opendata

    上传 Catat Transaksi 现金行,联网后让收银台 balance 与 capitalBalance 与云端账本对齐。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • id
    • cashCategoryId
    • customerTransactionId
    • customerId
    • orderId
    • balance
    • capitalBalance
    • date
    • paymentStatus
    • image
    • note
    POST /v1/till/entries/sync HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "id": "cash-9c3d",
      "cashCategoryId": "cat-expense-beli",
      "customerTransactionId": "ct-4419",
      "customerId": "cust-9c3d",
      "orderId": "ord-20261012-03",
      "balance": 1250000.0,
      "capitalBalance": 800000.0,
      "date": "2026-10-12T11:30:00Z",
      "paymentStatus": "PAID",
      "image": "https://cdn.example/r/cash-9c3d.jpg",
      "note": "Beli beras 25kg"
    }
    {
      "id": "cash-9c3d",
      "cashCategoryId": "cat-expense-beli",
      "customerTransactionId": "ct-4419",
      "customerId": "cust-9c3d",
      "orderId": "ord-20261012-03",
      "balance": 1250000.0,
      "capitalBalance": 800000.0,
      "date": "2026-10-12T11:30:00Z",
      "paymentStatus": "PAID",
      "image": "https://cdn.example/r/cash-9c3d.jpg",
      "note": "Beli beras 25kg"
    }
  • 收付历史月份分类

    GET /v1/ledger/{accountId}/months/breakdown opendata

    把一个月的 Tagih、Bayar 与 PPOB 拆成带 amount、count、mainCategory、type 的分类,并给出筛选条用的 saving 与 totalTransaction。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • accountId
    • saving
    • totalTransaction
    • categories
    • id
    • name
    • mainCategory
    • type
    • amount
    • count
    GET /v1/ledger/acc-88100214/months/breakdown HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "accountId": "acc-88100214",
      "saving": 125000.0,
      "totalTransaction": 60,
      "categories": [
        {
          "id": 1,
          "name": "Tagih",
          "mainCategory": "IN",
          "type": "IN",
          "amount": 8750000.0,
          "count": 42
        },
        {
          "id": 2,
          "name": "Bayar",
          "mainCategory": "OUT",
          "type": "OUT",
          "amount": 3125000.0,
          "count": 18
        }
      ]
    }
  • Saldo 钱包余额

    GET /v1/wallet/float openbanking

    读取 Saldo 钱包 amount、subBalance 的 cashback 口袋、日/月借记上限,以及拦住充值或消费的 isSaldoFreezed。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • amount
    • visible
    • limit
    • subBalance
    • saldo
    • cashback
    • debitDaily
    • debitDailyLimit
    • debitMonthly
    • debitMonthlyLimit
    • bmsRegistered
    • isSaldoFreezed
    GET /v1/wallet/float HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "amount": 1850000.0,
      "visible": true,
      "limit": 20000000.0,
      "subBalance": {
        "saldo": 1750000.0,
        "cashback": 100000.0
      },
      "debitDaily": 125000.0,
      "debitDailyLimit": 5000000.0,
      "debitMonthly": 2750000.0,
      "debitMonthlyLimit": 20000000.0,
      "bmsRegistered": true,
      "isSaldoFreezed": false
    }
  • 充值 Saldo 钱包

    POST /v1/wallet/float/credit openbanking

    按选定的 paymentMethods 为 amount 发起 Saldo 充值,返回待付虚拟账户页所用的 orderId、status 与 progress;cancelUnpaidTopupId 会先取消卡住的上一笔充值。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • accountId
    • amount
    • cancelUnpaidTopupId
    • paymentMethods
    • orderId
    • transactionId
    • status
    • fee
    • cost
    • description
    • createdAt
    • purchaseType
    • type
    • payments
    • progress
    POST /v1/wallet/float/credit HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    Content-Type: application/json
    
    {
      "accountId": "acc-88100214",
      "amount": 500000.0,
      "cancelUnpaidTopupId": null,
      "paymentMethods": [
        {
          "paymentMethod": "VA",
          "paymentChannel": "BCA"
        }
      ]
    }
    {
      "orderId": "ord-saldo-topup-19",
      "transactionId": "trx-saldo-in-19",
      "status": "PENDING",
      "amount": 500000.0,
      "fee": 0.0,
      "cost": 500000.0,
      "description": "Top up Saldo",
      "createdAt": "2026-10-12T11:05:00Z",
      "purchaseType": "SALDO",
      "type": "SALDO",
      "payments": [
        {
          "paymentMethod": "VA",
          "paymentChannel": "BCA"
        }
      ],
      "progress": [
        {
          "status": "CREATED"
        }
      ]
    }
  • 商户银行账户

    GET /v1/payouts/{accountId}/destinations openbanking

    列出店铺用于 QRIS 结算与 Bayar 的收款行,含 accountHolderName、isQrisBank 以及姓名核验后的 matchingStatus。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • bankAccountId
    • accountId
    • bankCode
    • bankName
    • accountNumber
    • accountHolderName
    • customerId
    • isQrisBank
    • proposedQrisBank
    • matchingStatus
    • matchingScore
    • isDisabled
    • status
    GET /v1/payouts/acc-88100214/destinations HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    [
      {
        "bankAccountId": "ba-991",
        "accountId": "acc-88100214",
        "bankCode": "CENAIDJA",
        "bankName": "BCA",
        "accountNumber": "1234567890",
        "accountHolderName": "Budi Santoso",
        "customerId": "cust-self",
        "isQrisBank": true,
        "proposedQrisBank": false,
        "matchingStatus": true,
        "matchingScore": 0.98,
        "isDisabled": false,
        "status": "VERIFIED"
      }
    ]
  • BukuPoin 积分账户

    GET /v1/rewards/account opendata

    读取 BukuPoin 的 activePoints、usedPoints、expiredPoints 与 tierId,驱动推荐排行榜与 Tagih 的 loyaltyDiscount。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • isWhitelisted
    • loyaltyAccount
    • activePoints
    • usedPoints
    • expiredPoints
    • levelScore
    • tierId
    • userId
    • deleted
    • loyaltyAccountTier
    • loyaltyTiers
    GET /v1/rewards/account HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "isWhitelisted": true,
      "loyaltyAccount": {
        "id": 4419,
        "userId": "usr-10482",
        "activePoints": 1250,
        "usedPoints": 400,
        "expiredPoints": 50,
        "levelScore": 80,
        "tierId": "gold",
        "deleted": false
      },
      "loyaltyAccountTier": {
        "tierId": "gold"
      },
      "loyaltyTiers": [
        {
          "tierId": "silver"
        },
        {
          "tierId": "gold"
        }
      ]
    }
  • BNPL 用户贷款额度

    GET /v1/credit/bnpl/eligibility openfinance

    返回 BNPL 白名单与 availableLimit / maxLoanLimit / maxTransactionLimit,供收银台赊购供应商货款或 PPOB 账单时使用。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • status
    • message
    • data
    • userId
    • whitelisted
    • availableLimit
    • maxLoanLimit
    • maxTransactionLimit
    • minTransactionLimit
    GET /v1/credit/bnpl/eligibility HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    {
      "status": "OK",
      "message": "ok",
      "data": [
        {
          "userId": "usr-10482",
          "whitelisted": true,
          "availableLimit": 2500000,
          "maxLoanLimit": 5000000,
          "maxTransactionLimit": 1000000,
          "minTransactionLimit": 50000
        }
      ]
    }
  • Saldo 返现兑换记录

    GET /v1/wallet/cashback/claims openfinance

    列出 Tagih、QRIS 或 PPOB 达标后记入 cashback 口袋的 Saldo 返现兑换(id、amount、externalId、status)。

    认证方式: OTP 登录签发的 Bearer accessToken;另附 X-Authorization-Firebase idToken。

    • id
    • amount
    • externalId
    • status
    • createdDate
    • lastModifiedDate
    GET /v1/wallet/cashback/claims HTTP/1.1
    Authorization: Bearer <access-token>
    X-Authorization-Firebase: <id-token>
    [
      {
        "id": "cb-4419",
        "amount": 10000.0,
        "externalId": "ord-20261012-01",
        "status": "COMPLETED",
        "createdDate": "2026-10-12T09:20:00Z",
        "lastModifiedDate": "2026-10-12T09:21:00Z"
      }
    ]

数据类别

  • 余额
  • 交易
  • 收付
  • KYC
  • 账单

数据使用场景与案例

  • 中小商户应收应付对账

    夜间任务把 Tagih 的 paymentRequestId 行与 Bayar 的 disbursementId 打款对齐,ERP 无需打开收银台即可核对 receivedAmount 与 status。

  • QRIS 结算运营

    资金看板拆开 disbursedPayments 与 toBeDisbursedPayments,并盯 qrisStatus / kybStatus,好让 warung 知道码牌何时可印、晚 8 点银行入账何时该到。

  • Saldo 与 PPOB 营运资金

    放贷方读取 amount、debitDailyLimit、isSaldoFreezed,并对照 PPOB 订单 status 与 items,按 Pulsa、电费和 BPJS 量估算备付金。

  • 现金账到总账桥接

    会计机器人摄入现金账的 balance、capitalBalance 与 cashCategoryId,让 Catat Transaksi 备注和收据图片与收款、打款历史落在同一期间。

常见问题

BukuWarung 背后有哪些收付流程?

Tagih 收款(IN)向客户发送 invoiceUrl,Bayar 打款(OUT)通过 checkoutUrl 或 virtualAccount 付给供应商,qrisCode 标识的 QRIS 码牌把扫码结算拆成 disbursedPayments 与 toBeDisbursedPayments。

Saldo 钱包如何构成?

amount 是可见余额,subBalance 把 saldo 与 cashback 拆开,debitDaily / debitMonthlyLimit 加上 isSaldoFreezed 决定 PPOB 购买或打款能否借记钱包。

现金账是否与 Tagih、Bayar 分开?

是。Catat Transaksi 行单独同步 id、cashCategoryId、balance 与 capitalBalance,收银台可离线记账,待收款或打款到达后再按 orderId 对齐。

KYC 与 QRIS 如何限制 Tagih、Bayar 和码牌?

核验后 paymentInLimits、paymentOutLimits 与 totalTrxCountLimit 封顶收款和打款;remainingFreeQuota 与 remainingFullCbQuota 减免 Tagih 手续费;qrisStatus、kycStatus 与 kybStatus 未到 APPROVED 时隐藏可打印的 qrisCode。

与 BukuWarung Apps for MSMEs 相似的应用

  • BukuKas — TechCrunch 把 BukuKas 列为 BukuWarung 的竞品:两家都从面向印尼中小微商户的电子记账做起,再补上收付和电商工具。
  • GoPay Merchant: QRIS — GoPay Merchant 是 GoTo 给印尼店铺发 QRIS 码牌的应用,可收 GoPay、DANA、OVO、ShopeePay 和银行扫码,再把货款提到银行账户。
  • DANA Kasir — DANA Kasir 是 DANA Bisnis 商户的收银台应用,可发静态或动态 DANA 收款码、实时记进出账,不必另接 EDC 机。
  • majoo — majoo 是印尼 UMKM 的收银与经营应用,把在线收银台、会计、库存、客户管理和经营报表放在同一套控制台里。
  • Kledo — Kledo 是印尼公司与 UMKM 使用的云会计软件,覆盖开票、采购、库存、费用、收银插件和财务报表。
  • Mekari Jurnal — Mekari Jurnal 是印尼在线会计软件,提供记账、开票、库存和税务,并可通过 Mekari POS 收银台把销售记进同一套账。
  • Accurate Online — Accurate Online 是印尼会计与经营软件,覆盖销售、库存、资金和报表,另有 Accurate POS 收银台和手机端 Accurate Lite。
  • Warung Pintar — CompassList 把 Warung Pintar 与 BukuKas 并列为 BukuWarung 的本地竞品;该创业公司与印尼 warung 店主合作,用 Juragan 应用订货并跟踪档口。

相关主题

  • BukuWarung API
  • Tagih 收款
  • Bayar 打款
  • QRIS 中小商户
  • Saldo 钱包
  • 印尼 warung 收付
  • PPOB Pulsa BPJS
  • 现金账同步

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价