银行汇率查询:汇率转换只需 3 个必填参数
约 11 分钟 入门银行汇率查询汇率转换金额换算Python示例
# 银行汇率查询:汇率转换只需 3 个必填参数
接口:银行汇率查询(apiCode=105)· 接入点:汇率转换(105-31)· 免费(L0 基础版 100 次/天、1 QPS)· 请求方式:POST / GET · 返回格式:JSON · 适用人群:需要做金额换算的开发者、产品经理 · 阅读时间:约 5 分钟 · 最后实测核对:2026-09-18
## 核心要点
- 汇率转换接入点(105-31)只有三个必填参数:`fromCode`、`toCode`、`money`,`money` 的单位是元。
- 除文档列出的 `money` 和 `ret_code` 外,实测返回体里还有一个 `rate` 字段,可以直接拿来展示换算比例。
- 换算双向可用,换算用的价格是源货币的现汇买入价,实测结果与 105-30 的牌价能对上。
## 自己算还是让接口算
查完牌价之后,下一个问题通常是:`100` 美元折合人民币多少?你可以拿 105-30 的 `hui_in` 自己乘一遍,也可以直接把三个参数丢给 105-31。区别在于口径由谁负责——接口返回的换算结果与牌价同源,你不用自己去核对该用买入价还是卖出价。
`money` 的单位是元,这一条在文档里写明,参数名容易让人误以为可以传任意单位的金额。
## 接口速览
| 项目 | 说明 |
|------|------|
| 接口地址 | `https://route.showapi.com/105-31?appKey={your_appKey}` |
| 必填参数 | `fromCode`(源货币代码)、`toCode`(目标货币代码)、`money`(转换金额,单位元) |
| 返回字段 | `money`(转换后的金额)、`rate`(换算比例,实测存在)、`ret_code` |
| 请求方式 | POST / GET,同步 |
| 计费 | 免费接口,注册即享 L0 基础版(100 次/天、1 QPS) |
| 超时设置 | OpenAPI 文档标注 `x-read-timeout` 15 秒、`x-connect-timeout` 15 秒 |
## 两种换算方向的调用代码
下面三段代码都换算 USD 与 CNY,把 `YOUR_APPKEY` 换成自己的值即可运行。
Python(requests):
```python
import requests
url = "https://route.showapi.com/105-31"
params = {"appKey": "YOUR_APPKEY"}
data = {"fromCode": "USD", "toCode": "CNY", "money": "100"}
try:
js = requests.post(url, params=params, data=data, timeout=15).json()
if js.get("showapi_res_code") == 0 and js["showapi_res_body"].get("ret_code") == 0:
body = js["showapi_res_body"]
print("换算结果:", body.get("money"), "CNY")
print("使用比例:", body.get("rate"))
else:
print("调用失败:", js.get("showapi_res_error"),
js["showapi_res_body"].get("ret_code"))
except requests.RequestException as exc:
print("请求异常:", exc)
```
cURL:
```bash
curl -X POST "https://route.showapi.com/105-31?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "fromCode=USD&toCode=CNY&money=100"
```
Node.js(fetch):
```javascript
const url = "https://route.showapi.com/105-31?appKey=YOUR_APPKEY";
const body = new URLSearchParams({ fromCode: "USD", toCode: "CNY", money: "100" });
const res = await fetch(url, {
method: "POST",
body,
headers: { "content-type": "application/x-www-form-urlencoded" },
signal: AbortSignal.timeout(15000)
});
const js = await res.json();
if (js.showapi_res_code === 0 && js.showapi_res_body.ret_code === 0) {
console.log("换算结果:", js.showapi_res_body.money, "CNY");
console.log("使用比例:", js.showapi_res_body.rate);
} else {
console.error("调用失败:", js.showapi_res_error, js.showapi_res_body.ret_code);
}
```
## 返回示例与解析
2026-09-18 实测 `fromCode=CNY&toCode=USD&money=100` 的真实返回:
```json
{
"showapi_res_error": "",
"showapi_res_code": 0,
"showapi_fee_num": 1,
"showapi_res_body": {
"rate": "0.149341",
"ret_code": 0,
"money": "14.9341"
}
}
```
同一天实测反向的 `fromCode=USD&toCode=CNY&money=100`:
```json
{
"showapi_res_body": {
"rate": "6.696100",
"ret_code": 0,
"money": "669.6100"
}
}
```
| 字段 | 含义 |
|------|------|
| `money` | 转换后的金额,字符串 |
| `rate` | 本次换算使用的比例,字符串,文档未列出但实测存在 |
| `ret_code` | 0 为成功,其他为失败 |
`rate` 字段是这个接入点在文档之外的一个返回值。做汇率展示时可以直接读它,不用自己用 `money` 除以原金额。`money` 与 `rate` 都以字符串返回,送进展示层之前按需要转数值。
## 换算口径验证
用 105-30 的牌价可以核对 105-31 的换算结果。2026-09-18 实测 105-30 返回的美元 `hui_in` 是 `669.61`,对应 `rate` 为 `6.6961`。100 美元按这个价格换算得到 `669.6100`,与 105-31 的返回一致;100 元人民币反向换算得到 `14.9341`,等于 `100 ÷ 6.6961`。两处数据互相验证,说明换算用的是源货币的现汇买入价。
反过来用这个结论可以自检:如果你的业务需要按现汇卖出价换算,就先用 105-30 读到 `hui_out`,再自行计算;接口返回的 `money` 走的是现汇买入价口径。
参数里传货币代码时使用 ISO 简码(USD、CNY、GBP、EUR)。可选的代码集合以币种列表接入点(105-35)返回的 `exchange_list[].code` 为准,不要硬编码。
## FAQ
**Q1:`fromCode` 和 `toCode` 可以填成同一种货币吗?**
可以传。结果按同一套牌价换算得出的比例计算。一般场景下两者不同才有实际意义。
**Q2:返回的 `money` 为什么是字符串?**
接口对金额、比例这类数值字段统一以字符串返回,例如 `"14.9341"`。需要参与计算时先转浮点。
**Q3:换算结果保留几位小数?**
文档未规定固定小数位,以实际返回为准。实测 `rate` 为 6 位小数、`money` 为 4 位小数,展示时可按业务需要自行取舍。
**Q4:支持任意两种货币互转吗?**
支持币种列表接入点覆盖到的货币之间换算。具体范围以 `105-35` 返回的 `code` 集合为准。
**Q5:这个换算结果能写进正式账单吗?**
接口数据为延迟数据、仅供参考,正式账单金额以银行实际成交价为准。接口返回值适合做展示与预估。
## 下一步阅读
- [银行汇率查询返回字段全解(五大价位 / 两层状态码 / 空值情况)](https://www.showapi.com/guides/exchange-rate-fields-105):换算式里的现汇买入价具体指什么。
- [银行汇率查询:用币种列表接入点做货币下拉框](https://www.showapi.com/guides/exchange-rate-currency-list-105):拿到合法的货币代码全集再传参。
- [银行汇率查询:跨境电商与留学缴费的多币种牌价管理](https://www.showapi.com/guides/exchange-rate-crossborder-105):把展示、换算、对账串成一条链路。
- **本系列共 13 篇**:查看[银行汇率查询指南总目录](https://www.showapi.com/guides/exchange-rate-guides-105)





