GoPay Merchant: QRIS 图标

GoPay Merchant QRIS 数据 API

PT. GoTo Gojek Tokopedia Tbk · 支付 4.6 ★

GoPay Merchant: QRIS 是 PT. GoTo Gojek Tokopedia Tbk(雅加达、由 Gojek 与 Tokopedia 合并而成的 GoTo 集团)面向印尼商户的收款端应用,用于按印尼银行(Bank Indonesia)的全国 QRIS 标准收款。新门店当天即可印出静态 QRIS 码牌,GoPay 资金扫码享受 0% 商户手续费;店员也可走动态 QRIS,按单笔金额出码而不是敞开口的码牌。已结算资金落在 GoPay 商户钱包,并另记 GPTU(GoPay Tabungan untuk Usaha)子钱包;可即时打款到 BCA、Mandiri、Danamon、BNI、BRI、CIMB Niaga 与 Bank Jago,也可按计划自动打款。每日销售报告发到邮箱,GoPay Spiker 是可选的到账语音音箱,Pinjam Modal(受 OJK 监管的经营贷)则对通过 KYC 的合格商户开放。应用持有印尼银行支付牌照,仅服务印尼,Google Play 评分 4.56(87,875 条),安装量逾一千万,与 GoBiz QRIS、DANA Bisnis、ShopeePay Merchant、LinkAja 争夺同一批 warung、摊位与多门店品牌。

带 NMID 的 QRIS 码牌是根记录:每家门店持有 nmid,ASPI EMV 载荷在 aspi_qr_string,可打印图在 aspi_qr_image_url,另有 GoPay 深链 gopay_qr_string。动态收款按 gross_amount 签发限时 qr_string,qr_type 为 DYNAMIC 且 payin.dynamic_qris 为真;退款则对 original_transaction_id 写下 refund_id,并留下 remaining_gross_amount。

已结算浮存拆成 gopay_balance 与 gptu_balance;首页卡片展示可动用 effective_balance / resulting_balance 以及待打款的 disbursable_amount,手动打款以 payout_id 打到 payout_account,受 min_payout_amount、is_payout_suspended 与 gopay_limit 约束。统一流水按 history_type 分页 QRIS、退款与打款行;安全评分给出 acc_safety_score 与 kyc_status。对账印尼 QRIS 收银台的财务、重印码牌的 POS 商,以及核验 Pinjam Modal 类经营贷的放贷方,不必再对着柜台应用手工录入——openData Studio 把这些字段变成可调用的开放数据。

应用截图

  • GoPay Merchant: QRIS 应用截图 1
  • GoPay Merchant: QRIS 应用截图 2
  • GoPay Merchant: QRIS 应用截图 3
  • GoPay Merchant: QRIS 应用截图 4
  • GoPay Merchant: QRIS 应用截图 5

API 端点一览

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

  • 商户钱包余额

    GET /v1/wallets/float openbanking

    读取已登录门店的 GoPay 商户钱包与 GPTU 子钱包,含首页余额条展示的可动用 effective_balance。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-User-Locale、X-User-Type、X-Selected-Outlet

    • gopay_balance
    • gptu_balance
    • effective_balance
    • show_combined_balance
    • show_wallet_balance
    • wallet_type
    • is_gopay_account_linked
    • is_maximum_balance_reached
    GET /v1/wallets/float HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-AppVersion: 2.6.0
    X-UniqueId: 7c2a9f11-4b8e-4d21
    X-AppId: <merchant-app>
    Gojek-Country-Code: ID
    X-User-Locale: id_ID
    X-User-Type: merchant
    X-Selected-Outlet: OUT-88100214
    {
      "gopay_balance": 18425000,
      "gptu_balance": 2500000,
      "effective_balance": 17240000,
      "show_combined_balance": true,
      "show_wallet_balance": true,
      "wallet_type": "GOPAY",
      "is_gopay_account_linked": true,
      "is_maximum_balance_reached": false,
      "currency": "IDR"
    }
  • 财务首页余额

    GET /v1/finance/home openfinance

    加载财务首页卡片:扣留后的 resulting_balance、可打款 disbursable_amount、仍在途的 outstanding_balance,以及 last_payout 一行。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-User-Locale、X-Selected-Outlet

    • resulting_balance
    • disbursable_amount
    • outstanding_balance
    • last_payout
    • payout_id
    • mainOutletFlag
    • wallet_type
    GET /v1/finance/home HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-AppVersion: 2.6.0
    X-UniqueId: 7c2a9f11-4b8e-4d21
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "resulting_balance": 17240000,
      "disbursable_amount": 16800000,
      "outstanding_balance": 440000,
      "last_payout": {
        "payout_id": "PO-20261007-4419",
        "amount": 15120000
      },
      "mainOutletFlag": true,
      "wallet_type": "GOPAY"
    }
  • 多钱包财务余额

    GET /v1/finance/wallets openbanking

    把 GoPay 与 GPTU 拆成独立钱包行,供财务页在合并展示与分钱包展示之间切换。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-Selected-Outlet

    • wallet_type
    • gopay_balance
    • gptu_balance
    • effective_balance
    • gptu_account_no
    • gptu_sof_status
    • show_combined_balance
    • default_selected_wallet
    GET /v1/finance/wallets HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "wallets": [
        {
          "wallet_type": "GOPAY",
          "gopay_balance": 18425000,
          "effective_balance": 17240000,
          "show_wallet_balance": true
        },
        {
          "wallet_type": "GPTU",
          "gptu_balance": 2500000,
          "gptu_account_no": "GPTU-998177",
          "gptu_sof_status": "ACTIVE"
        }
      ],
      "show_combined_balance": true,
      "default_selected_wallet": "GOPAY"
    }
  • GoPay 钱包限额

    GET /v1/finance/limits openfinance

    返回受 KYC 约束的 GoPay 资金上限与剩余即时打款额度;月度封顶触及后会拦住提现。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code、X-Selected-Outlet

    • gopay_limit
    • odp_remaining_limit
    • is_maximum_balance_reached
    • monthly_limit_hit
    • kyc_status
    • is_kyc_approved
    GET /v1/finance/limits HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "gopay_limit": 20000000,
      "odp_remaining_limit": 15750000,
      "is_maximum_balance_reached": false,
      "monthly_limit_hit": false,
      "kyc_status": "APPROVED",
      "is_kyc_approved": true
    }
  • 共享 QRIS 码牌

    GET /v1/qris/plate opendata

    返回门店静态 QRIS 载荷:印尼银行 NMID、ASPI EMV 字符串与图片 URL,以及用于重印码牌的 GoPay 深链字符串。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-Selected-Outlet

    • nmid
    • aspi_qr_string
    • aspi_qr_image_url
    • gopay_qr_string
    • qr_string
    • aspi_terminal_id
    • aspi_onboarding_status
    • is_qris_suspended
    • outlet_name
    • merchant_id
    GET /v1/qris/plate HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "nmid": "ID1021234567890",
      "aspi_qr_string": "0002010102112661ID.CO.QRIS.WWW0118936009141234567890215ID10212345678905204000053033605802ID5914WARUNG MAJU6007JAKARTA6105123406304ABCD",
      "aspi_qr_image_url": "/v1/media/qris/OUT-88100214.png",
      "gopay_qr_string": "gopay://merchant/pay?nmid=ID1021234567890",
      "qr_string": "0002010102112661ID.CO.QRIS.WWW0118936009141234567890215ID10212345678905204000053033605802ID5914WARUNG MAJU6007JAKARTA6105123406304ABCD",
      "aspi_terminal_id": "A01",
      "aspi_onboarding_status": "ACTIVE",
      "is_qris_suspended": false,
      "outlet_name": "Warung Maju Menteng",
      "merchant_id": "MCH-88100214"
    }
  • 发起动态 QRIS 收款

    POST /v1/charges openbanking

    按 gross_amount 创建一次性动态 QRIS 收款,返回限时 qr_string 与金额输入页使用的 mdr_range。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-Idempotency-Key、X-Request-Id、Gojek-Country-Code、X-Selected-Outlet

    • outlet_id
    • transaction_id
    • gross_amount
    • formatted_gross_amount
    • qr_string
    • qr_type
    • expired_at
    • mdr_range
    • payin.dynamic_qris
    POST /v1/charges HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-Idempotency-Key: 9f3c1a22-88b1-4d0e
    X-Request-Id: 4e11c8aa-21b0
    Gojek-Country-Code: ID
    Content-Type: application/json
    
    {
      "outlet_id": "OUT-88100214",
      "gross_amount": 75000,
      "qr_type": "DYNAMIC",
      "payin": {"dynamic_qris": true}
    }
    {
      "transaction_id": "TRX-20261008-7721",
      "gross_amount": 75000,
      "formatted_gross_amount": "Rp75.000",
      "qr_string": "0002010102122661ID.CO.QRIS.WWW0118936009141234567890215ID10212345678905204540153033605405750005802ID5914WARUNG MAJU6007JAKARTA6105123406304BEEF",
      "qr_type": "DYNAMIC",
      "expired_at": "2026-10-08T10:15:00+07:00",
      "mdr_range": "0",
      "payin": {"dynamic_qris": true}
    }
  • 退回 QRIS 收款

    POST /v1/refunds openbanking

    针对 original_transaction_id 发起商户退款,返回 remaining_gross_amount 与预计结算时间。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-Idempotency-Key、Gojek-Country-Code、X-Selected-Outlet

    • refund_id
    • original_transaction_id
    • gross_amount
    • remaining_gross_amount
    • refund_process_date_time
    • refunded_estimation_date_time
    • min_settlement_amount
    POST /v1/refunds HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-Idempotency-Key: a1b2c3d4-e5f6
    Gojek-Country-Code: ID
    Content-Type: application/json
    
    {
      "original_transaction_id": "TRX-20261008-7721",
      "gross_amount": 75000,
      "outlet_id": "OUT-88100214"
    }
    {
      "refund_id": "RF-20261008-1192",
      "original_transaction_id": "TRX-20261008-7721",
      "gross_amount": 75000,
      "remaining_gross_amount": 0,
      "refund_process_date_time": "2026-10-08T10:22:11+07:00",
      "refunded_estimation_date_time": "2026-10-08T10:30:00+07:00",
      "min_settlement_amount": 10000
    }
  • 手动打款

    POST /v1/payouts openbanking

    把 disbursable_amount 即时打到 payout_account,受 min_payout_amount、remaining_payout_qty 与 is_payout_suspended 约束。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-Idempotency-Key、Gojek-Country-Code、X-Selected-Outlet

    • payout_id
    • payout_account
    • wallet_type
    • disbursable_amount
    • min_payout_amount
    • max_settlement_amount
    • is_payout_suspended
    • remaining_payout_qty
    POST /v1/payouts HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-Idempotency-Key: 5c88ee01-aa12
    Gojek-Country-Code: ID
    Content-Type: application/json
    
    {
      "outlet_id": "OUT-88100214",
      "wallet_type": "GOPAY",
      "amount": 16800000,
      "payout_account": "BCA-1234567890"
    }
    {
      "payout_id": "PO-20261008-8821",
      "payout_account": "BCA-1234567890",
      "wallet_type": "GOPAY",
      "disbursable_amount": 16800000,
      "min_payout_amount": 10000,
      "max_settlement_amount": 20000000,
      "is_payout_suspended": false,
      "remaining_payout_qty": 2
    }
  • 手动打款预检

    GET /v1/payouts/preview openfinance

    提现表单预检:剩余 disbursable_amount、payout_account、available_payout_options,以及打款是否被暂停。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code、X-Selected-Outlet

    • disbursable_amount
    • min_payout_amount
    • max_settlement_amount
    • payout_account
    • available_payout_options
    • is_payout_suspended
    • is_payout_amount_reached
    • expired_at
    GET /v1/payouts/preview?wallet_type=GOPAY HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "disbursable_amount": 16800000,
      "min_payout_amount": 10000,
      "max_settlement_amount": 20000000,
      "payout_account": "BCA-1234567890",
      "available_payout_options": ["BANK_TRANSFER", "GPTU"],
      "is_payout_suspended": false,
      "is_payout_amount_reached": false,
      "expired_at": "2026-10-08T23:59:59+07:00"
    }
  • 打款计划

    GET /v1/payouts/windows openfinance

    列出自动打款窗口(每日 15:00、每周、仅手动)以及 payout_schedule_editable 是否允许商户改计划。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code、X-Selected-Outlet

    • available_schedules
    • default_schedules
    • current_schedule_time
    • daily_schedule_time
    • payout_schedule_editable
    • payout_account
    GET /v1/payouts/windows HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "available_schedules": ["DAILY_15", "WEEKLY_FRI", "MANUAL"],
      "default_schedules": ["DAILY_15"],
      "current_schedule_time": "15:00",
      "daily_schedule_time": "15:00",
      "payout_schedule_editable": true,
      "payout_account": "BCA-1234567890"
    }
  • 统一交易流水

    GET /v1/activity openfinance

    分页返回商户活动流(QRIS 收款、退款与打款),可在「我的报表」页按 history_type 过滤。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code、X-Selected-Outlet

    • transaction_id
    • history_type
    • gross_amount
    • formatted_gross_amount
    • outlet_id
    • outlet_name
    • nmid
    • wallet_type
    • batch_size
    GET /v1/activity?history_type=QRIS&limit=20 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-Selected-Outlet: OUT-88100214
    {
      "items": [
        {
          "transaction_id": "TRX-20261008-7721",
          "history_type": "QRIS",
          "gross_amount": 75000,
          "formatted_gross_amount": "Rp75.000",
          "outlet_id": "OUT-88100214",
          "outlet_name": "Warung Maju Menteng",
          "nmid": "ID1021234567890",
          "wallet_type": "GOPAY"
        }
      ],
      "batch_size": 20
    }
  • 交易报表任务

    POST /v1/reports/sales opendata

    排队生成按需销售报表,随后以带日期的交易工作簿发到商户邮箱。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、X-Request-Id、Gojek-Country-Code、X-Selected-Outlet

    • outlet_id
    • merchant_id
    • job_id
    • status
    • component_ids
    POST /v1/reports/sales HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-Request-Id: 8aa1-21b0
    Gojek-Country-Code: ID
    Content-Type: application/json
    
    {
      "outlet_id": "OUT-88100214",
      "merchant_id": "MCH-88100214",
      "start_date": "2026-10-01",
      "end_date": "2026-10-08"
    }
    {
      "job_id": "RPT-20261008-331",
      "outlet_id": "OUT-88100214",
      "merchant_id": "MCH-88100214",
      "status": "QUEUED",
      "component_ids": ["qris", "payout", "refund"]
    }
  • 列出商户门店

    GET /v1/locations opendata

    列出已登录商户下的门店,含地址、坐标、NMID 以及门店切换器用的 mainOutletFlag。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code、X-User-Type

    • outlet_id
    • outlet_name
    • outlet_address
    • outlet_city
    • outlet_postal_code
    • outlet_latitude
    • outlet_longitude
    • nmid
    • merchant_id
    • mainOutletFlag
    • is_qris_suspended
    GET /v1/locations HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    X-User-Type: merchant
    {
      "outlets": [
        {
          "outlet_id": "OUT-88100214",
          "outlet_name": "Warung Maju Menteng",
          "outlet_address": "Jl. Menteng Raya 12",
          "outlet_city": "Jakarta",
          "outlet_postal_code": "10310",
          "outlet_latitude": -6.1944,
          "outlet_longitude": 106.8294,
          "nmid": "ID1021234567890",
          "merchant_id": "MCH-88100214",
          "mainOutletFlag": true,
          "is_qris_suspended": false
        }
      ]
    }
  • 账户安全评分

    GET /v1/account/safety osint

    读取商户安全评分;acc_safety_score 下降或 KYC 未完成时会卡住 QRIS 与打款。

    认证方式: GoTo 登录签发的 Bearer access_token;另附 X-AppVersion、X-UniqueId、Gojek-Country-Code

    • acc_safety_score
    • kyc_status
    • is_kyc_approved
    • is_qris_suspended
    • is_payout_suspended
    GET /v1/account/safety HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "acc_safety_score": 82,
      "kyc_status": "APPROVED",
      "is_kyc_approved": true,
      "is_qris_suspended": false,
      "is_payout_suspended": false
    }
  • OTP 登录

    POST /v1/session/otp opendata

    用短信或 WhatsApp OTP 兑换后续钱包、QRIS 与打款调用所需的 access_token 与 refresh_token。

    认证方式: 商户登录的公开入口。附 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-ClientID。响应中的 access_token / refresh_token 在后续调用中以 Bearer 携带。

    • otp_token
    • access_token
    • refresh_token
    • login_access_token
    • login_refresh_token
    • kyc_status
    • merchant_id
    POST /v1/session/otp HTTP/1.1
    X-AppVersion: 2.6.0
    X-UniqueId: 7c2a9f11-4b8e-4d21
    X-AppId: <merchant-app>
    X-ClientID: <merchant-client>
    Gojek-Country-Code: ID
    Content-Type: application/json
    
    {
      "phone": "+6281234567890",
      "otp_token": "482193",
      "otp_channel": "sms"
    }
    {
      "access_token": "eyJhbGciOi...",
      "refresh_token": "rt_9f3c1a22",
      "login_access_token": "eyJhbGciOi...",
      "login_refresh_token": "rt_login_9f3c",
      "kyc_status": "APPROVED",
      "merchant_id": "MCH-88100214"
    }

数据类别

  • 钱包余额
  • QRIS 码牌
  • 动态收款
  • 退款
  • 打款
  • 交易流水
  • 门店
  • 账户安全

数据使用场景与案例

  • 夜间 QRIS 账本轧差

    门店 ERP 拉取钱包浮存(gopay_balance、gptu_balance、effective_balance),再按 history_type 分页统一流水,让当日 QRIS 的 gross_amount 与 disbursable_amount 在 15:00 自动打款前对齐。

  • 跨门店重印 NMID 码牌

    多门店品牌按 outlet_id 读取 nmid、aspi_qr_string 与 aspi_qr_image_url;一旦 aspi_onboarding_status 变化或 is_qris_suspended 触发,就重新生成柜台贴纸。

  • 按需打款机器人

    资金岗盯 disbursable_amount 对照 min_payout_amount 与 remaining_payout_qty,在 is_payout_suspended 为假且 odp_remaining_limit 仍有额度时,向 payout_account 发起手动打款。

  • 低安全分风控冻结

    合规任务读取 acc_safety_score 与 kyc_status;安全评分上的 is_qris_suspended 或 is_payout_suspended 拉起时,暂停动态收款与计划打款。

常见问题

GoPay Merchant 暴露哪些钱包余额?

钱包接口返回 gopay_balance、gptu_balance 以及可动用 effective_balance。财务首页另给 resulting_balance、disbursable_amount 与 outstanding_balance;多钱包拆分按 wallet_type GOPAY / GPTU 列出 gptu_account_no。

静态 QRIS 码牌如何表示?

共享 QRIS 接口返回印尼银行 nmid、ASPI EMV 载荷 aspi_qr_string、用于重印的 aspi_qr_image_url、gopay_qr_string、aspi_terminal_id 以及 is_qris_suspended。

能否发起按需银行打款?

可以。手动打款预检先返回 disbursable_amount、min_payout_amount、payout_account 与 is_payout_suspended;提交手动打款后得到 payout_id 与 remaining_payout_qty。计划接口经 available_schedules 列出每日 15:00 与每周窗口。

商户如何登录?

OTP 登录用短信或 WhatsApp 的 otp_token 兑换 access_token 与 refresh_token。后续调用携带 Authorization Bearer,以及 X-AppVersion、X-UniqueId、X-AppId、Gojek-Country-Code、X-User-Locale、X-User-Type、X-Selected-Outlet。

与 GoPay Merchant: QRIS 相似的应用

  • GoBiz — GoTo 面向印尼商户的综合控制台,同样发放 QRIS,并在纯收款的 GoPay Merchant 之外提供目录、员工与打款工具。
  • DANA Bisnis — DANA 面向印尼店铺的商家端,用于收 QRIS、查看结算并打款到银行账户。
  • ShopeePay Merchant — Shopee 面向印尼摊位与 warung 的商家收款应用,覆盖 QRIS 与 ShopeePay。
  • LinkAja Merchant — 国资背景 LinkAja 的商家端,用于印尼 QRIS 收款与打款跟踪。
  • GoFood Merchant — GoTo 面向餐厅的 GoFood 接单应用;后厨常与 GoPay Merchant 一起用,分别管外卖工单与店内 QRIS。
  • Midtrans — GoTo 的支付网关控制台(gopaymerchant.midtrans.com),许多印尼线上商户会与店内 QRIS 应用并用。

相关主题

  • GoPay Merchant API
  • QRIS 商户数据
  • NMID aspi_qr_string
  • GoPay 钱包余额
  • GPTU 商户打款
  • 印尼 QRIS 端点
  • GoPay Merchant QRIS

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

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

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

获取报价