GoPay Merchant QRIS 数据 API
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 把这些字段变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
商户钱包余额
GET
/v1/wallets/floatopenbanking读取已登录门店的 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/homeopenfinance加载财务首页卡片:扣留后的 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/walletsopenbanking把 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/limitsopenfinance返回受 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/plateopendata返回门店静态 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/chargesopenbanking按 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/refundsopenbanking针对 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/payoutsopenbanking把 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/previewopenfinance提现表单预检:剩余 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/windowsopenfinance列出自动打款窗口(每日 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/activityopenfinance分页返回商户活动流(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/salesopendata排队生成按需销售报表,随后以带日期的交易工作簿发到商户邮箱。
认证方式: 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/locationsopendata列出已登录商户下的门店,含地址、坐标、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/safetyosint读取商户安全评分;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/otpopendata用短信或 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 天交付
- 验收通过后才付款
- 仅在授权范围内作业