银行卡归属地查询 API 使用教程
关键词建议:银行卡归属地查询 API、银行卡归属地接口、银行卡开户行查询 API、银行卡归属地查询接口、批量银行卡查询 API、企业级银行卡归属地接口、小程序银行卡对接接口、免费银行卡归属地 API、银行卡 BIN 码查询接口、银联 Luhn 校验 API。
1. 技能简介
银行卡归属地查询 API 是一款面向企业、开发者与系统服务商的金融数据接口服务。通过传入银行卡号,可实时返回卡片所属地区、银行名称、卡种、客服电话、官方网站、银行 LOGO 等基础信息;开启 BIN 码扩展后,还能获取银行卡 BIN 码、BIN 长度、卡号长度及银联 Luhn 校验结果。该接口覆盖国内 500 余家银行卡种,支持借记卡、信用卡等多类型卡片识别,适用于账户实名核验、支付风控、财务对账、表单自动填充等场景。查询失败不计费的设计进一步降低了企业的试用与接入成本。
2. 核心亮点
数据覆盖广:支持全国 500 余家银行卡查询,覆盖中国银行、农业银行、建设银行、邮政储蓄、交通银行、招商银行、浦发银行、兴业银行、华夏银行、民生银行、光大银行等主流银行及地方银行,满足大多数业务场景下的卡种识别需求。
字段完整:基础返回包含地区、银行名、卡种、品牌、客服电话、官网、银行 LOGO、规范化银行名称及银行简码;扩展返回包含 BIN 码、BIN 长度、卡号长度、银联 Luhn 校验,帮助企业构建更完整的账户信息档案。
计费友好:当归属地查询失败时,不扣除调用次数,降低无效成本,尤其适合对免费试用、小批量验证有需求的开发团队。
接入便捷:支持 POST/GET 双协议,JSON 返回,提供 Java、PHP、Python、JavaScript 多语言示例,平均接入周期短,适合快速上线。
生态兼容:提供标准 OpenAPI 3.0 文档及 MCP 服务配置,可快速导入 Apifox、Postman、Swagger UI 或接入支持 MCP 的 AI 客户端,方便开发者与 AI Agent 调用。
更新机制:数据每年不定期更新,保持对银行发卡规则变化的跟踪,确保查询结果长期可用。
3. 主要用途
银行卡归属地查询 API 广泛应用于以下场景:
- 账户实名核验:在金融、支付、借贷类应用中,根据用户填写的银行卡号自动识别开户行、卡种及地区,辅助完成二要素或三要素实名验证。
- 支付风控:判断银行卡所属银行与地区,识别异常交易来源,降低欺诈风险。
- 财务对账与报销:自动填充报销单中的开户行、银行名称,减少人工录入错误。
- 电商与 SaaS 收银台:根据卡号智能显示银行 LOGO 与客服电话,提升用户信任感与体验。
- 企业 ERP / 进销存:在收款、付款、工资发放等模块中自动识别银行卡信息,提升财务处理效率。
- 小程序 / APP 表单优化:用户输入卡号后自动带出银行名称与卡种,减少输入步骤,提高转化率。
如需在线查看服务详情与购买入口,可访问 银行卡归属地查询服务页。
4. 功能特点
| 特性 | 说明 |
|---|---|
| 卡号识别 | 输入 15-19 位银行卡号,自动返回归属地、银行、卡种等信息 |
| BIN 码扩展 | 通过 needBin=1 获取 BIN 码、BIN 长度、卡号长度、银联 Luhn 校验结果 |
| 失败不计费 | 当归属地查询失败时,不扣除调用次数 |
| 双协议支持 | 同时支持 POST 与 GET 请求,适配不同技术栈 |
| JSON 返回 | 标准 JSON 格式,解析成本低,兼容性强 |
| 多语言示例 | 提供 Java、PHP、Python、JavaScript 等常用语言调用示例 |
| MCP / OpenAPI | 支持 MCP 服务配置与 OpenAPI 3.0 文档导出 |
| 数据更新 | 银行数据每年不定期更新,保持时效性 |
5. 操作流程
5.1 请求参数对照表
| 参数名称 | 类型 | 是否必填 | 示例值 | 描述 |
|---|---|---|---|---|
| cardNum | String | 是 | 6228480402564890018 | 待查询的银行卡号 |
| needBin | String | 否 | 1 | 是否返回 BIN 码与银联 Luhn 校验结果:1 返回,0 不返回(默认) |
说明:
needBin=1会返回更多字段,但单次查询耗时略有增加;若仅需基础信息,可保持默认值。
5.2 官方 5 步接入流程
第 1 步:获取访问凭证
登录控制台,创建应用并获取 appKey。该密钥用于所有接口调用的身份校验。
第 2 步:构造请求
根据业务需求选择 POST 或 GET 方式,将 cardNum 作为核心参数传入;如需 BIN 码信息,附加 needBin=1。
第 3 步:发送请求
使用 HTTP 客户端向接口地址发送请求。建议生产环境使用 HTTPS,并妥善保管密钥。
第 4 步:解析返回
接口返回 JSON,业务数据位于系统封装后的业务对象内。先判断系统级返回码是否为 0,再读取业务返回码 ret_code 与具体字段。
第 5 步:异常处理
针对查询失败、参数错误、网络超时等情况设置重试与降级策略,确保业务流程稳定。

6. 实际案例
以下以一张农业银行借记卡为例,展示输入参数、返回结果与关键字段解读。
输入卡号:6228480402564890018
扩展参数:needBin=1
6.1 参数填写示例
| 字段 | 值 |
|---|---|
| cardNum | 6228480402564890018 |
| needBin | 1 |
6.2 返回结果样例

6.3 关键字段解读
| 字段 | 值 | 含义 |
|---|---|---|
| ret_code | 0 | 查询成功 |
| area | 江苏省 - 苏州 | 银行卡归属地区 |
| bankName | 中国农业银行(01030000) | 发卡银行名称 |
| cardType | 借记卡 | 卡片类型 |
| brand | 金穗通宝卡(银联卡) | 银行卡产品名称 |
| tel | 95599 | 银行客服电话 |
| url | www.abchina.com | 银行官网 |
| card_bin | 622848 | 银行卡 BIN 码 |
| bin_digits | 6 | BIN 码长度 |
| card_digits | 19 | 银行卡卡号长度 |
| isLuhn | 1 | 通过银联 Luhn 校验 |
6.4 银行 LOGO 示例

7. 在线运行实录
7.1 创意场景参数设计
场景:用户在移动端填写银行卡号后,前端自动识别开户行并显示银行 LOGO,提升表单体验。
参数设计:
| 参数 | 设计值 | 设计意图 |
|---|---|---|
| cardNum | 6228480402564890018 | 真实借记卡卡号,用于验证识别能力 |
| needBin | 1 | 需要 BIN 码与 Luhn 校验,满足风控校验需求 |

7.2 运行全过程
- 打开在线调试工具,选择「接口文档」对应的接入点。
- 在请求体中填入
cardNum=6228480402564890018与needBin=1。 - 点击「运行」,接口同步返回 JSON 结果。
- 记录返回耗时(视网络环境通常在数百毫秒内)。
- 校验
ret_code=0后,提取bankName、cardType、area、logo等字段用于前端展示。
7.3 最终结果展示与解读
接口返回完整字段后,前端可自动完成以下动作:
- 显示「中国农业银行」及对应银行 LOGO;
- 标注卡片类型为「借记卡」;
- 展示归属地「江苏省 - 苏州」;
- 在风控模块记录 BIN 码
622848与 Luhn 校验通过状态。
8. 接口接入示例 & 完整返回字段样例
8.1 接口地址
POST https://route.showapi.com/30-7?appKey={your_appKey}
8.2 多语言调用示例
Java
import java.io.*;
import java.net.*;
public class BankCardQuery {
public static void main(String[] args) throws Exception {
String url = "https://route.showapi.com/30-7?appKey=YOUR_APPKEY";
String params = "cardNum=6228480402564890018&needBin=1";
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
try (OutputStream os = conn.getOutputStream()) {
os.write(params.getBytes("UTF-8"));
}
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder sb = new StringBuilder();
while ((line = in.readLine()) != null) sb.append(line);
System.out.println(sb.toString());
}
}
PHP
<?php
$url = "https://route.showapi.com/30-7?appKey=YOUR_APPKEY";
$data = http_build_query([
"cardNum" => "6228480402564890018",
"needBin" => "1"
]);
$opts = [
"http" => [
"method" => "POST",
"header" => "Content-Type: application/x-www-form-urlencoded\r\n",
"content" => $data
]
];
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
echo $result;
?>
Python
import requests
url = "https://route.showapi.com/30-7?appKey=YOUR_APPKEY"
data = {
"cardNum": "6228480402564890018",
"needBin": "1"
}
resp = requests.post(url, data=data)
print(resp.json())
JavaScript
fetch("https://route.showapi.com/30-7?appKey=YOUR_APPKEY", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded" },
body: "cardNum=6228480402564890018&needBin=1"
})
.then(r => r.json())
.then(data => console.log(data));
8.3 完整 JSON 返回样例
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_id": "ce135f6739294c63be0c021b76b6fbff",
"showapi_res_body": {
"ret_code": 0,
"area": "江苏省 - 苏州",
"tel": "95599",
"brand": "金穗通宝卡(银联卡)",
"bankName": "中国农业银行(01030000)",
"cardType": "借记卡",
"url": "www.abchina.com",
"cardNum": "622848***********018",
"simpleCode": "ABC",
"formatBankName": "农业银行",
"logo": "https://res-showapi.oss-cn-hangzhou.aliyuncs.com/1day-delete/bank_logo_abc_20260805142303.png",
"card_bin": "622848",
"bin_digits": "6",
"card_digits": "19",
"isLuhn": "1"
}
}
8.4 返回字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| 系统级返回码 | Integer | 0 表示请求成功 |
| 系统级错误信息 | String | 成功时为空 |
| 请求唯一标识 | String | 本次请求唯一标识 |
| 业务数据对象 | Object | 包含业务字段的数据对象 |
| ret_code | String | 业务返回码,0 表示查询成功 |
| area | String | 银行卡归属地区 |
| cardType | String | 银行卡种,如借记卡、信用卡 |
| brand | String | 银行卡产品名称 |
| tel | String | 银行客服电话 |
| bankName | String | 银行名称 |
| url | String | 银行官网 |
| simpleCode | String | 银行简码 |
| formatBankName | String | 规范化银行名称 |
| logo | String | 银行 LOGO 图片地址 |
| card_bin | String | 银行卡 BIN 码(needBin=1 时返回) |
| bin_digits | String | BIN 码长度(needBin=1 时返回) |
| card_digits | String | 银行卡卡号长度(needBin=1 时返回) |
| isLuhn | String | 是否通过银联 Luhn 校验(needBin=1 时返回) |
9. 接口调用限制与服务规范
| 项目 | 说明 |
|---|---|
| 请求方式 | POST / GET |
| 返回格式 | JSON |
| 字符编码 | UTF-8 |
| 传输协议 | HTTPS |
| 调用频率 | 具体 QPS 上限以控制台套餐为准 |
| 每日额度 | 受购买套餐或免费额度限制 |
| 批量规则 | 单次请求仅支持查询一张银行卡;批量场景需在业务端循环调用 |
| 合规要求 | 禁止用于非法收集、贩卖银行卡信息;仅限自有业务场景使用 |
| 限流说明 | 超过套餐 QPS 或日调用上限时,接口将返回限流错误,建议错峰或升级套餐 |
10. SLA 服务指标
| 指标 | 数值 / 说明 |
|---|---|
| 平均响应时间 | 典型场景下数百毫秒,具体受网络与参数影响 |
| 全年可用性 | 服务方承诺高可用架构,可用性以官方 SLA 为准 |
| QPS 并发上限 | 根据所选套餐确定,支持企业客户按需扩容 |
| 数据更新周期 | 每年不定期更新 |
| 故障响应时长 | 一般故障工作日响应,重大故障提供紧急通道 |
| 重试机制 | 建议客户端在超时或网络异常时进行 2-3 次指数退避重试 |
11. 计费套餐 & 免费试用政策
11.1 计费模式
| 套餐类型 | 说明 |
|---|---|
| 免费试用 | 新用户可申请免费调用额度,用于功能验证与联调 |
| 专用资源包 | 按固定价格购买固定调用次数,自购买起 12 个月有效 |
| 通用资源包 | 充值后可用于全站多个付费接口,灵活调配 |
| 按量计费 | 超出套餐部分按实际调用量扣费,单价透明 |
| 并发扩容 | 大客户可申请提升 QPS 上限,满足高并发业务需求 |
11.2 价格参考
| 规格 | 价格 |
|---|---|
| 专用资源包入门档 | ¥50.00 元起 |
| 通用资源包 | ¥50.00 / ¥450.00 / ¥2,000.00 / ¥6,000.00 等多档可选 |
实际价格以 银行卡归属地查询服务页 显示为准。
11.3 长期合作优惠
- 调用量越大,单价越低;
- 年度采购可享受专属折扣;
- 大客户提供技术支持与专属对接通道。
12. 接口能力边界 & 服务范围说明
12.1 明确支持
- 国内主流银行借记卡、信用卡的归属地、银行名称、卡种识别;
- 通过
needBin=1获取 BIN 码、BIN 长度、卡号长度、银联 Luhn 校验; - POST / GET 请求方式;
- Java、PHP、Python、JavaScript 等语言调用;
- MCP 服务配置与 OpenAPI 3.0 文档导出。
12.2 明确不支持
- 境外银行卡识别;
- 银行账户余额、交易流水、持卡人姓名等敏感信息查询;
- 非银行类支付卡、预付卡、虚拟卡的识别;
- 任何违反法律法规或侵犯用户隐私的数据调用。
12.3 边界说明
- 极少数特殊卡种、小众银行或新发卡号可能无法返回完整字段;
- 部分银行 LOGO、规范化名称可能为空字符串;
- 数据覆盖范围以接口实际返回为准,不保证 100% 覆盖全部历史卡号。
12.4 免责声明
接口返回数据仅供参考,不构成银行、支付机构或监管部门的最终认定。任何基于该数据进行的商业决策、交易定价、合规运营等活动,均需由调用方自行核实并承担最终责任。
13. 竞品差异化竞争优势
| 行业痛点 | 本服务优势 |
|---|---|
| 数据覆盖不全 | 覆盖国内 500 余家银行及卡种,持续更新 |
| 服务不稳定 | 采用高可用架构,支持 HTTPS 稳定调用 |
| 响应延迟高 | 典型响应在数百毫秒级别 |
| 计费不透明 | 失败不计费,套餐价格公开透明,无隐形消费 |
| 接入成本高 | 提供多语言示例、OpenAPI、MCP 多种接入方式 |
| 售后响应慢 | 提供工单系统与技术支持通道,大客户享专属服务 |
| 数据更新滞后 | 每年不定期更新,跟踪银行发卡规则变化 |
| 兼容性差 | 标准 JSON 返回,支持 POST/GET,适配多种系统 |
14. 行业落地应用案例
电商平台:接入银行卡归属地查询 API 后,在收银台自动识别用户开户行并展示银行 LOGO,减少用户手动选择步骤,支付转化率提升约 8%。
金融科技公司:在借贷申请环节自动校验用户银行卡信息,结合 BIN 码与 Luhn 校验识别异常卡号,风控误报率降低约 12%。
企业 ERP:在薪资发放与报销模块中自动填充开户行、银行名称,财务人员手工录入工作量减少约 30%。
医药电商平台:对接口返回的银行地区信息进行归档,便于后续分区域结算与对账,对账效率提升约 20%。
生活服务小程序:用户绑定银行卡时自动识别卡种与银行,前端体验更流畅,绑卡完成率提升约 10%。
15. 错误码说明 & 常见问题排查指南
15.1 系统级返回码
| 返回码 | 含义 | 排查方案 |
|---|---|---|
| 0 | 请求成功 | 正常解析业务数据对象即可 |
| -1 | 系统错误 | 稍后重试或联系技术支持 |
| -2 | 参数错误 | 检查 cardNum 是否为有效银行卡号 |
| -3 | 权限不足 | 检查 appKey 是否有效、是否欠费 |
| -4 | 接口限流 | 降低调用频率或升级套餐 |
| -5 | 密钥失效 | 在控制台重新生成或绑定密钥 |
| -7 | 请求超时 | 检查网络环境,必要时增加超时时间并重试 |
| -8 | 签名错误 | 检查请求签名算法与参数编码 |
15.2 业务级返回码
| 返回码 | 含义 | 排查方案 |
|---|---|---|
| 0 | 查询成功 | 正常读取归属地、银行等信息 |
| 非 0 | 查询失败 | 可能是卡号无效或数据库未覆盖,不扣费 |
15.3 常见问题
Q1:调用后无返回数据怎么办?
A:请检查 cardNum 是否为正确的银行卡号,needBin 是否为 0 或 1;确认网络可达且 appKey 有效。
Q2:为什么部分字段为空?
A:银行 LOGO、规范化名称、BIN 码等字段在部分银行或特殊卡种下可能为空,属于正常边界情况。
Q3:接口返回慢怎么办?
A:可关闭 needBin 以减少单次查询耗时;同时检查本地网络与 DNS 解析情况。
16. 独立 FAQ 常见问答专区
Q:银行卡归属地查询 API 主要支持哪些功能?
A:通过银行卡号查询归属地区、银行名称、卡种、客服电话、官网、银行 LOGO 等信息,并可选返回 BIN 码、BIN 长度、卡号长度与银联 Luhn 校验结果。
Q:是否支持免费试用?免费额度多少?
A:支持。新用户可在服务页申请免费试用额度,具体数量以页面显示为准。
Q:响应速度与稳定性如何?
A:接口采用高可用架构,典型响应时间为数百毫秒,全年可用性以官方 SLA 为准。
Q:是否支持批量调用、高并发接入?
A:单次请求仅支持查询一张卡,批量需在业务端循环调用;企业客户可申请提升 QPS 上限以满足高并发需求。
Q:数据多久更新一次?
A:银行数据每年不定期更新,跟踪发卡规则变化。
Q:调用报错 / 无返回数据如何排查?
A:首先检查卡号是否有效、appKey 是否欠费或失效、是否触发限流;其次查看返回码与错误信息,按第 15 节排查指南处理。
Q:是否支持私有化部署、定制化开发?
A:大客户可联系商务,评估私有化部署、数据定制、专属技术支持等方案。
Q:适用于哪些系统场景?支持 ERP、小程序、APP 对接吗?
A:适用于电商、金融、ERP、小程序、APP、SaaS 等多种系统,提供多语言示例与 OpenAPI 文档,便于快速集成。
Q:收费标准是什么?有无隐形收费?
A:提供专用资源包、通用资源包与按量计费等多种模式,价格公开透明,失败查询不计费,无隐形消费。
Q:接入需要什么资质、如何快速对接?
A:注册账号、获取 appKey、阅读接口文档并调用测试接口即可;生产环境需遵守合规要求,不得用于非法用途。
17. 内容小结
银行卡归属地查询 API 是一款面向企业级应用、开发者与系统服务商的金融数据接口,支持通过银行卡号快速获取归属地、银行、卡种、BIN 码、Luhn 校验等多维信息。其数据覆盖广、字段完整、计费友好、接入便捷,广泛适用于账户实名核验、支付风控、财务对账、表单优化等场景。
接入时需注意:妥善保管 appKey、按需选择 needBin 参数、合理设置重试与限流策略、遵守数据合规要求。建议在正式采购前使用免费额度完成联调与压测。
更多服务详情、套餐价格与在线调试入口,请访问 银行卡归属地查询服务页。