/rechargeCard 向储值卡充值时收取?/rechargeCard 向储值卡充值不收取手续费。/refundCard 将卡内余额退回账户时,已收取的充值手续费是否返还?/refundCard 仅将卡内余额退回 VM 主账户,不涉及已收取的账户入金手续费返还。product_code 或 BIN?| 费用类型 | 计费规则 |
|---|---|
| 消费授权或失败交易费 | 卡组 VC102/VC110/VC113:0.20 USD/笔;卡组 VC105:0.30 USD/笔。 |
| 消费退款费 | 所有卡 BIN 均收取 10% 消费退款费,从总账扣除。 |
| 拒付或争议费 | 拒付(Declined Transaction)按交易失败处理,费用同消费授权或失败交易费;争议(Chargeback Transaction)按 35 USD/笔收取。 |
| 跨境交易费及外汇转换费 | 不收取。 |
| 卡余额退回费 | 不收取。 |
| 账户提现或资金转出费 | VM 总账余额提现至外部钱包时,按提现金额的 4%+3 收取。 |
{
"content": "RSA密文"
}content 加密报文?{"content":"RSA密文"} 格式,包括:/createCard/cardDetail/freezeCard/deleteCard/rechargeCard/refundCard/cardTransaction/updateCardLimit/getCardList/getCardFlow/getProductCode 和 /getAccountBalance 不包含业务请求体,可以提交空 Body。data 是否始终加密?/getAccountBalance、/createCard、/cardDetail、/rechargeCard 和 /refundCard 的完整 Sandbox cURL 与实际响应示例?json.dumps(data) 序列化后进行 UTF-8 编码。/getAccessToken 当前使用 app_id 和 app_secret 获取 Token。| 问题 | 答复 |
|---|---|
Authorization 请求头应直接填写 Token,还是使用 Bearer <token>? | 直接填写 Token,不使用 Bearer 格式。 |
expired_time 是否为 Unix 秒时间戳? | 是。 |
| Token 默认有效期是多久? | 7200 秒。 |
| 是否建议在到期前提前获取新 Token? | 建议至少提前 600 秒获取。 |
| 获取新 Token 后应如何处理旧 Token? | 获取新 Token 后建议立即切换使用最新 Token。 |
| App Secret 和 Token 的撤销及轮换流程是什么? | 如需进行 App Secret 或 Token 轮换,请联系 VMCard 技术支持。 |
是否支持通过 POST Body 或其他方式提交 app_secret? | 不支持。/getAccessToken 当前为 GET 路由,通过 app_id 和 app_secret 参数获取。 |
X-Client-Request-Id 对请求进行去重控制。X-Client-Request-Id 适用于全部 API,包括开卡、充值、余额退回、修改限额和删卡等接口。-、_、.、:。AppId + ClientRequestId 组合判断。Duplicate Client Request Id。Duplicate Client Request Id。X-Client-Request-Id 用于请求去重,但当前不作为 Card Flow、Transaction 等最终业务数据的稳定关联字段。/getCardList 或 /cardDetail/getCardFlow/cardTransaction/getCardFlow 查询相关资金流水。| 信息 | 当前情况 |
|---|---|
| 唯一操作流水号 | /getCardFlow 返回 flow_id,可用于资金流水对账及去重。 |
| 操作状态 | 以 /getCardFlow 实际返回状态为准。 |
| 申请金额和实际金额 | 以相关接口实际返回字段为准。 |
| 手续费 | 当前不通过 /getCardFlow 单独返回手续费流水。 |
| 操作前后余额 | 当前返回该笔流水完成后的账户余额。 |
| 创建时间和更新时间 | 以相关接口实际返回字段为准。 |
/getProductCode 当前返回:| 项目 | 当前规则 |
|---|---|
| 开卡费和充值费 | /getProductCode 当前不返回费用字段。 |
/createCard 金额范围 | amount >= 1;save 卡同时要求 amount <= 50000。 |
/rechargeCard 金额范围 | 10 <= amount <= 50000。 |
/refundCard 金额范围 | amount >= 0。 |
| 3DS、AVS 和订阅支付能力 | 以后台产品详情为准。 |
| 支持或限制的国家、商户及 MCC | 以 VMCard 商务通知及后台配置为准。 |
| 卡有效期及产品上下架 | 以后台实际产品状态及 VMCard 通知为准。 |
重要说明:当前 VMCard Open API 暂未开放 share / 额度卡产品。 以下涉及 share、wallet_balance及/updateCardLimit的内容,仅用于说明现有接口字段和相关能力定义,不代表当前 API 用户可以实际开通或使用额度卡。当前实际可用的卡产品及产品权限,以 VMCard 后台实际开放情况为准。
/createCard 时,amount 是否代表首次卡充值金额?balance 与 wallet_balance 分别对应哪种资金池?balance:账户主余额,对应储值卡资金池。wallet_balance:钱包余额,对应 share / 额度卡资金池。/updateCardLimit 修改 amount 时,实际如何影响额度钱包?amount 将作为新的总额度。/createCard 中的 card_address 是否可以完全省略?card_address 后,address_line_two 是否必填?first_name 和 last_name 必填,且不得为空。card_address 整体可选。card_address,除 address_line_two 外,其余内部字段均为必填。-)。#、@ 等特殊符号。/rechargeCard 和 /refundCard 的资金分别从哪里扣除、退回哪里?/rechargeCard:从主账户 balance 扣款,并增加储值卡余额。/refundCard:从储值卡余额退回主账户 balance。amount 进行充值或余额退回。/rechargeCard 当前金额范围:10 <= amount <= 50000/refundCard 当前金额规则:amount >= 0PENDING?"true" 时代表什么?"true" 表示该接口当前同步处理成功。/cardDetail、/getCardFlow 等查询接口返回的数据为准。flow_id?/getCardFlow 查询,每笔资金流水包含唯一的 flow_id。/refundCard 的可退金额以卡片当前可用余额为准。/getCardFlow 中的主要字段分别表示什么?flow_id:资金流水 ID。amount:流水金额。reality_amount:实际处理金额。account_balance:该笔流水完成后的账户余额。ref、code:资金流水对应的扩展字段。getCardFlow.flow_id 是否全局唯一且不会复用?/getCardFlow 不包含独立手续费流水,也不返回手续费币种字段。auth_id 是否可以贯穿 Authorization、Settlement、Reversal 和 Refund?auth_id 是 VMCard 系统生成的交易记录 ID,可以用于标识单条返回记录,但不能稳定作为 Authorization、Settlement、Reversal 和 Refund 整个交易生命周期的统一关联 ID。/cardTransaction,当前规则如下:| 项目 | 答复 |
|---|---|
start_time 和 end_time 的筛选字段 | 按 auth_time 筛选。 |
| 时间范围边界 | 包含起止时间。 |
| 时间字段时区 | auth_time 的存储时区取决于各通道返回的数据时区。 |
| 默认排序 | 按 auth_time 降序。 |
| 分页稳定性 | 当前采用 offset/limit 分页,查询期间存在新增记录时不能保证分页结果完全稳定。 |
| 最大查询跨度及数据保留期 | page_size 最大为 1000;当前未限制查询时间跨度,历史数据目前长期保留。 |
| 增量查询 | 当前不支持按更新时间、游标或独立事件 ID 进行增量查询。 |
auth_amount / auth_currency 与 settle_amount / settle_currency 分别表示什么?auth_amount:授权金额。auth_currency:授权币种。settle_amount:清算金额。settle_currency:清算币种。type 判断资金方向,不应根据金额正负判断交易类型。1.234 处理为 1.23。1.235 处理为 1.24。| 验证能力 | 当前情况 |
|---|---|
| HMAC 或公钥签名 | 暂不支持。 |
| Callback Secret | 当前仅配置回调 URL,不提供独立 Callback Secret。 |
timestamp + nonce 防重放机制 | 暂不支持。 |
独立 event_id 或 delivery_id | 暂不提供。 |
| mTLS | 当前未使用。 |
| Production 固定出口 IP | 8.219.3.65。 |
HTTP 200 OK{
"msg": "ok"
}msg 不为 ok。| 项目 | 当前情况 |
|---|---|
challenge_id 或 transaction_id | 当前回调不包含。 |
| 独立事件 ID | 当前不提供。 |
| OTP 生成时间和到期时间 | 回调中不返回。 |
| 通知次数或尝试次数 | Payload 中不包含。 |
| OTP 重放防护字段 | 当前不提供。 |
| Webhook 查询或人工补发接口 | 当前不提供。 |
当前 VMCard 系统所有已开放卡 BIN 默认关闭 3DS 功能,因此现阶段不会产生 3DS 通知。 如果后续相关产品开放 3DS 能力,VMCard 将提前通知 API 用户。
code = 0code != 0code 和错误信息判断。Authorization 为空、Token 无效或 Token 已过期:400003400007400004 与 400007 分别表示什么?400004:未开通权限(No Permission)400007:App Secret 错误Authorization Is EmptyInvalid TokenInvalid AppIdParams Content ErrorRetry-After。AppId + API Endpoint/getAccessToken 按以下维度限流:来源 IP + 请求 URLACTIVE:卡片处于激活状态。CANCELLED:卡片被冻结或停用,可以重新提交 ACTIVE 恢复。DELETED:卡片已经删除,不可恢复。DELETED。CANCELLED,一般等待 3 至 5 天后自动解除。/deleteCard 是否不可逆?DELETED 状态后不可恢复。{
"content": "RSA密文"
}/createCard/cardDetail/freezeCard/deleteCard/rechargeCard/refundCard/cardTransaction/updateCardLimit/getCardList/getCardFlow/getProductCode 和 /getAccountBalance 不包含业务请求体,可以提交空 Body。data 为加密数据。json.dumps(data) 序列化后进行 UTF-8 编码。/cardTransaction.auth_time 是否包含 Timezone 或 UTC Offset?auth_time 来自各通道交易处理后的入库时间,其时区可能因通道而异。/refundCard 最低保留余额本章节仅适用于当前已开放的 save / 储值卡产品。 当前 VMCard 暂未开放 share / 额度卡产品。
/refundCard 时的最低保留余额如下:| 产品 | 卡组织及发卡国家 | BIN | 最低保留余额 |
|---|---|---|---|
| VC110 | Visa,美国 | 43612077、43612078、43612079、43612080、43612081、40041641、40024200 | 0.10 USD |
| VC113 | Mastercard,美国 | 537872 | 0.10 USD |
| VC102 | Mastercard,美国 | 555671、544015、525962 | 可退至 0.00 USD |
/refundCard 时,应确保退回后的卡余额满足对应产品的最低保留余额要求。/cardTransaction 返回。/getCardFlow 资金流水返回。/getCardFlow 中 type = "card recharge":平台账户资金转入卡片。/getCardFlow 中 type = "card refund":卡内余额退回平台账户。/cardTransaction 中 type = "Refund":商户消费退款。/cardTransaction 中 type = "Reversal":消费授权撤销。type 判断资金方向,不应根据金额正负判断。type = "Refund"
status = "COMPLETE"type = "Refund"| 参数名 | 类型 | 说明 |
|---|---|---|
auth_id | String | 交易 ID |
card_id | String | 卡 ID |
vm_card_id | String | VM 卡 ID |
auth_time | String | 交易授权时间 |
auth_amount | Double | 授权金额 |
auth_currency | String | 授权币种 |
settle_amount | Double | 清算金额 |
settle_currency | String | 清算币种 |
status | String | 交易状态 |
type | String | 交易类型 |
merchant_name | String | 交易商户 |
create_time | String | 创建时间 |
description | String | 交易详情或交易失败信息 |