以下是从真实集成经验中整理出的常见问题和解决方案。若未找到对应答案,请联系你的 UQPAY 客户经理。Documentation Index
Fetch the complete documentation index at: https://developers-sandbox.uqpaytech.com/llms.txt
Use this file to discover all available pages before exploring further.
认证与 API Key
在哪里找到 API 凭证(x-client-id 和 x-api-key)?
在哪里找到 API 凭证(x-client-id 和 x-api-key)?
x-client-id 和 x-api-key 的分步流程。如果看不到 Create 按钮,说明你账户的 API 功能尚未开通 —— 请联系客户经理为你启用。创建 API Key 时提示 `API functionality is not activated, please contact the administrator`。
创建 API Key 时提示 `API functionality is not activated, please contact the administrator`。
调用 Token 接口时返回 403 Forbidden,怎么回事?
调用 Token 接口时返回 403 Forbidden,怎么回事?
- Base URL 错误 —— 确认使用正确的环境地址。沙盒:
https://api-sandbox.uqpaytech.com;生产:https://api.uqpay.com。 - 凭证错误 —— 沙盒凭证无法在生产使用,反之亦然。确认你的
x-client-id和x-api-key是在哪个环境创建的。 - IP 白名单 —— 如果你在创建 API Key 时配置了 IP 限制,来自其他 IP 的请求会被拦截。你可以在 Dashboard 的 API Key 设置中移除或更新该 IP 限制。
调用沙盒时返回 `Access to this resource is forbidden from UAT`。
调用沙盒时返回 `Access to this resource is forbidden from UAT`。
"error": "Forbidden", "message": "Access to this resource is forbidden from UAT")表示你使用的是生产环境创建的凭证,但调用了沙盒 URL;或账户尚未开通沙盒访问权限。请联系客户经理为你的账户开通沙盒访问,并提供沙盒专用的凭证。Access Token 有效期多久?何时应该刷新?
Access Token 有效期多久?何时应该刷新?
子账户与账户结构
House Account、Sub-Account 和 Virtual Account(VA)有什么区别?
House Account、Sub-Account 和 Virtual Account(VA)有什么区别?
- House Account(也称 Master Account,主账户):你的 UQPAY 主账户。所有 API 凭证都归属于该账户。
- Sub-Account(子账户):在主账户下创建的子账户,代表你的某个终端客户或业务单元。子账户可以持有余额,并可拥有自己的虚拟账户。
- Virtual Account(VA,虚拟账户):分配给某个子账户的银行账号(例如 IBAN,或附带 Sort Code 的账号)。打入 VA 的资金会进入对应子账户的余额。
x-on-behalf-of,其值为该子账户的 account_id(长 UUID 格式)。参见 Virtual Account, Global Account, and Local Account。子账户可以通过 API 创建,还是只能通过 Dashboard?
子账户可以通过 API 创建,还是只能通过 Dashboard?
x-on-behalf-of 通过 API 管理该账户。x-on-behalf-of 是如何工作的?可以用父账户 ID 查询子账户的数据吗?
x-on-behalf-of 是如何工作的?可以用父账户 ID 查询子账户的数据吗?
x-on-behalf-of 设为子账户的 account_id(长 UUID)。必须使用子账户自己的 ID —— 传入父账户/主账户 ID 的话,任何接口都不会返回该子账户的数据。Deposit 查询的情况:Webhook 通知里的 deposit account_id 就是子账户的 UUID。调用 deposit 详情接口时,可直接把该值作为 x-on-behalf-of 传入。account_id 应该使用短的 CB 前缀 ID,还是长 UUID?
account_id 应该使用短的 CB 前缀 ID,还是长 UUID?
- 短的
CB前缀 ID(例如CB4316632576)用于 Dashboard 界面以及部分 Webhook 字段short_entity_id。 - 长 UUID 用于 API 请求头(
x-on-behalf-of)、接口响应体,以及调用大部分接口时的标准标识。
创建的子账户只有一个 VA,也没有 `Add VA` 按钮,为什么?
创建的子账户只有一个 VA,也没有 `Add VA` 按钮,为什么?
虚拟账户创建
用 x-on-behalf-of 调用 Create VA 接口时,返回结果为空(total_items: 0),为什么?
用 x-on-behalf-of 调用 Create VA 接口时,返回结果为空(total_items: 0),为什么?
x-on-behalf-of的值虽然是子账户 ID,但该 VA 是在另一个账户下创建的。- 子账户尚未审批/激活。
- 调用时使用的 Token 是父账户签发的,而
x-on-behalf-of设置为一个不相关的子账户 ID。
x-on-behalf-of 的值是否与该 VA 所属的子账户 account_id 匹配,并确认该账户已完成 KYC。Webhook 中的 deposit_id 如何关联到具体是哪个 VA?
Webhook 中的 deposit_id 如何关联到具体是哪个 VA?
account_id 字段,值为收款子账户的 UUID。使用该 UUID 作为 x-on-behalf-of 调用 GET /api/v1/deposits/{deposit_id},即可获取入金的完整详情,包括收款账号。建议在你自己的系统中维护 account_id → VA 账号 的映射,避免每次收到通知都查询。出款(POBO)
提交出款时返回 `beneficiary account not exists`,但 beneficiary ID 看起来是正确的。
提交出款时返回 `beneficiary account not exists`,但 beneficiary ID 看起来是正确的。
beneficiary_id 在你当前操作的子账户上下文中不存在。请检查:x-on-behalf-of请求头是否与创建该受益人的子账户匹配。- 受益人是否已被删除。一旦删除,该 beneficiary ID 即失效。
- 是否混用了沙盒和生产环境的 beneficiary ID。
南非(ZAR)出款的 clearing_system 应填什么?
南非(ZAR)出款的 clearing_system 应填什么?
clearing_system 取决于支付类型。通过本地通道为 ZAR 创建受益人时,请在 bank_details 中包含 "clearing_system": "LOCAL",同时务必包含 routing_code_type1 字段。API 报错 'bank_details.clearing_system' is required 即表明请求体中缺失该字段。哥伦比亚(COP)出款失败,提示 `Field additional_info.msisdn failed on e164 validation`。正确格式是什么?
哥伦比亚(COP)出款失败,提示 `Field additional_info.msisdn failed on e164 validation`。正确格式是什么?
msisdn 字段必须使用 E.164 格式,需要带国际区号前缀。哥伦比亚需在本地号码前加 +57。例如本地号码 3122885049 应填为 +573122885049。请根据实际使用的清算网络确认该格式是否被接受。外汇换汇
调用 Quote 接口并指定日期时返回 `conversion date is invalid`。
调用 Quote 接口并指定日期时返回 `conversion date is invalid`。
GET /api/v1/conversion/conversion_dates?currency_to=X¤cy_from=Y 获取该币种对的可用结算日期列表。conversion_date 字段只能使用该接口返回的日期。周末和公共假日通常会被排除在外。调用换汇 Quote 接口时返回 `account not config fx product`。
调用换汇 Quote 接口时返回 `account not config fx product`。
Webhooks
如何在沙盒中手动触发 Deposit Webhook 以便测试?
如何在沙盒中手动触发 Deposit Webhook 以便测试?
收不到 deposit.pending 或 deposit.completed Webhook,如何配置 Webhook 端点?
收不到 deposit.pending 或 deposit.completed Webhook,如何配置 Webhook 端点?
deposit.pending 和 deposit.completed 事件类型。参见 Webhooks Setup 和 Webhook Delivery Troubleshooting。Deposit Webhook 的 payload 里没有 VA 账号(IBAN/账号),我如何知道是哪个账户收款?
Deposit Webhook 的 payload 里没有 VA 账号(IBAN/账号),我如何知道是哪个账户收款?
account_id(子账户 UUID)和 deposit_id。若要获取完整的入金详情(包括收款账号),请使用 Webhook 中的 account_id 作为 x-on-behalf-of,调用 GET /api/v1/deposits/{deposit_id}。响应体中会包含收款方的账号。建议在客户入驻时就缓存 account_id → VA 账号 的映射,避免每次都查询。沙盒测试
如何获取沙盒访问权限和凭证?
如何获取沙盒访问权限和凭证?
- 为你开通沙盒账户并发送登录凭证,或
- 引导你在
https://app-sandbox.uqpaytech.com自助注册,然后为你的账户启用沙盒 banking 产品。
https://api-sandbox.uqpaytech.com 作为 base URL。我在沙盒通过 KYC API 创建了子账户,但一直卡在非审批通过状态,如何让它通过测试?
我在沙盒通过 KYC API 创建了子账户,但一直卡在非审批通过状态,如何让它通过测试?
account_id(CB 前缀短 ID 或 UUID),并指明目标终态(例如 Active)。同理,若需测试 RFI 流程,可请他们把账户置为 Returned 状态,以便测试补件重新提交流程。如何为沙盒账户充值余额,用于测试出款和换汇?
如何为沙盒账户充值余额,用于测试出款和换汇?
余额与转账
如何查询某个币种的余额?
如何查询某个币种的余额?
如何把资金从子账户转回主账户?
如何把资金从子账户转回主账户?
POST /api/v1/transfer)。通过 x-on-behalf-of 指定源账户(子账户),并在请求体中指定目标账户 ID。参见 Create Transfer。出款的 fee_paid_by(OURS vs SHARED)选项是如何生效的?
出款的 fee_paid_by(OURS vs SHARED)选项是如何生效的?

