银行卡归属地/开户行/卡类型查询 API 接入实战

简介: 本文介绍银行卡归属地、开户行与卡类型查询接口的能力与工程接入方式:输入卡号即可返回归属地区、发卡行名称、卡种、卡品牌、银行联系电话与官网,并可选返回 BIN 码及银联 Luhn 效验结果。覆盖全国 500 余家银联渠道银行,未查到归属地不收费。教程包含接入流程、参数说明、调用示例、完整 JSON 返回结构、在线调试实录、调用限制与合规要点、错误码排查及技术 FAQ,适合在资金结算、风控校验、小程序与 APP 绑卡等场景中作为一次通用的卡信息解析能力集成。

银行卡归属地/开户行/卡类型查询 API 接入实战

本文面向首次接入的开发者,介绍「银行卡归属地/开户行/类型查询」接口的能力、参数、调用方式、返回结构、在线调试与常见错误排查。内容基于该接口的真实返回字段,不夸大功能,供工程集成参考。

1. 技术简介

银行卡归属地/开户行/类型查询接口是一个金融数据服务。输入一张银行卡号,接口基于银联渠道与 BIN 段信息,返回该卡的归属地区、发卡行名称、卡种、银行卡产品名称(品牌)、银行联系电话电话、银行官网,以及(可选的)BIN 码与银联 Luhn 效验结果。

该接口覆盖全国 500 余家银行,支持带银联标识的银行卡。它把「一串数字卡号 → 行名 / 归属地 / 卡种」的解析封装成一次 HTTP 请求,业务侧无需自行维护会不定期变化的银行 BIN 段表。

银行卡归属地查询能力总览

2. 能力概览

能力项 说明
归属地查询 返回卡号对应的「省 / 自治区 - 城市」粒度地区
开户行查询 返回发卡行名称与规范化行名
卡类型查询 返回卡种(借记卡 / 信用卡等)与卡品牌
BIN 码与 Luhn 可选返回 BIN 码、BIN 码长度、卡号长度、是否通过银联 Luhn 效验
覆盖范围 全国 500 余家银行,银联渠道
未查到策略 归属地查询失败不收费

输入为单个卡号,输出为结构化 JSON。可选开关 needBin 控制是否返回 BIN 相关字段。

3. 适用场景

  • 资金结算与对账:在支付、结算环节把卡号翻译成行名与归属地,省去人工逐条核对。
  • 风控校验:判断卡种(借记 / 信用)是否落在业务允许范围内。
  • 用户端展示:在收银台 / 绑卡页展示银行 logo、联系电话电话,提升用户确认体验。
  • 多要素核验前置:作为「姓名 + 身份证 + 卡号 + 手机」多要素核验的卡号信息补充。
  • 小程序 / APP 集成:在绑卡流程中一次性拿到卡信息,减少前端二次查询。

4. 接入流程

  1. 获取鉴权凭据:在控制台创建应用,获取 AppCode。调用时通过请求头 Authorization: APPCODE <appcode> 携带。
  2. 确认调用入口:该接口以 30-7 接入点提供,请求方式支持 GET / POST,返回 JSON。
  3. 准备参数:必填 cardNum(银行卡号);可选 needBin(是否返回 BIN 与 Luhn,默认 0 不返回)。
  4. 发起请求:GET 把参数放在 query,POST 把参数放在 body 并设置 Content-Type: application/x-www-form-urlencoded。
  5. 解析返回:先看外层 showapi_res_code 判请求是否被受理,再看内层 showapi_res_body.ret_code 判本次是否查到。

接入流程示意

下文代码示例中的 appcode 为占位符(YOUR_APPCODE),请替换为你在控制台获取的真实凭据;示例仅保留调用路径占位,完整调用地址见控制台。

5. 调用示例与返回结构

5.1 GET 请求示例(Java 风格示意)

// 请求头:Authorization: APPCODE YOUR_APPCODE
// query: cardNum=6228480402564890018&needBin=1
// path: /30-7 (完整调用地址见控制台)
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "APPCODE " + appcode);

Map<String, String> query = new HashMap<>();
query.put("cardNum", "6228480402564890018");
query.put("needBin", "1");

5.2 返回字段说明

字段 类型 含义 是否一定返回
ret_code 整数 0 成功,其他失败 是
area String 归属地区 是
cardType String 银行卡种 是
brand String 卡产品名称(品牌) 是
bankName String 银行名称 是
formatBankName String 规范化银行名称 是
tel String 银行联系电话电话 是
url String 银行官网 是
logo String 银行标志 部分银行可能为空
simpleCode String 银行简码 不一定有
card_bin String 银行卡 BIN 码 仅 needBin=1
bin_digits String BIN 码长度 仅 needBin=1
card_digits String 卡号长度 仅 needBin=1
isLuhn String 是否通过银联 Luhn 效验(1 是 / 0 否 / 空 不支持) 仅 needBin=1

外层还有 4 个系统级字段:showapi_res_code(请求是否被受理)、showapi_res_error(外层错误信息)、showapi_res_id(本次请求唯一标识)、showapi_fee_num(本次调用计数)。

5.3 完整 JSON 返回样例

{
   
  "showapi_res_code": 0,
  "showapi_res_id": "示例请求ID",
  "showapi_fee_num": 1,
  "showapi_res_body": {
   
    "ret_code": 0,
    "area": "示例地区",
    "cardType": "借记卡",
    "brand": "示例卡品牌",
    "bankName": "示例银行",
    "formatBankName": "示例银行(规范化)",
    "tel": "银行联系电话电话",
    "url": "银行官网占位",
    "logo": "银行标志占位",
    "cardNum": "6228480402564890018",
    "card_bin": "622848",
    "bin_digits": "6",
    "card_digits": "19",
    "isLuhn": "1"
  }
}

返回结构示意

6. 在线调试实录

在控制台「在线调试」模块输入一个真实卡号 6228480402564890018 并勾选 needBin=1,返回:

  • showapi_res_code = 0:请求被正常受理;
  • showapi_res_body.ret_code = 0:本次查到结果;
  • area 返回「省/城市」粒度归属地;
  • bankName / formatBankName 返回发卡行;
  • card_bin、bin_digits、card_digits、isLuhn 因 needBin=1 一并返回。

解读:外层与内层两层状态码都要判断——外层判断「请求是否受理」,内层 ret_code 判断「是否查到归属地」。两层都为 0 才算一次成功且查到结果的调用。

在线调试示意

7. 调用限制与规范

  • 未查到不扣费:归属地查询失败时不收费,适合做前置校验。
  • needBin 的影响:返回 BIN 与 Luhn 字段会增加处理耗时,仅在需要时开启。
  • 数据刷新:银行卡 BIN 段数据每年不定期更新,以接口方实际维护为准。
  • QPS / 每日配额:具体数值以控制台实时配置为准,批量调用前先核对自己账户的配额。
  • 合规:卡号属敏感信息,传输走 HTTPS;落库与展示按金融数据合规要求脱敏处理,不用于任何违法违规用途。

8. 能力边界与免责声明

  • 支持:带银联标识的银行卡,全国 500 余家银行的归属地 / 卡种 / 品牌 / 行名查询。
  • 不支持:非银联渠道卡、个别新发行或地方小银行的卡可能查不到归属地(此时不扣费)。
  • 边界:返回的是「卡号对应的静态 BIN 段信息」,不代表持卡人身份;身份核验需配合姓名 / 身份证多要素接口。
  • 免责:数据仅供参考,不用于信贷审批等最终业务决策;以实际发卡行为准。

能力边界示意

9. 错误码排查

现象 可能原因 处理建议
外层 showapi_res_code != 0 AppCode 无效 / 权限不足 / 未购买资源包 检查鉴权凭据与资源包额度
内层 ret_code != 0 该卡号未查到归属地 按「未查到不扣费」处理,记录 remark(若有)
缺少 BIN / Luhn 字段 未传 needBin=1 需要时显式传 needBin=1
请求超时 开启 BIN 后耗时增加 / 网络波动 控制 needBin 使用频率,加超时与重试

10. 技术 FAQ

Q1:一次调用能同时拿到归属地、行名和卡种吗?
能。一次请求即可返回 area、bankName / formatBankName、cardType、brand 等核心字段。

Q2:BIN 码和 Luhn 是不是默认返回?
不是。默认不返回,需显式传 needBin=1 才会返回 card_bin、bin_digits、card_digits、isLuhn。

Q3:查不到归属地会扣费吗?
不会。归属地查询失败的请求不收费。

Q4:能用于判断持卡人是谁吗?
不能。返回的是卡号对应的银行静态信息,不涉及持卡人身份;身份核验需用多要素接口。

Q5:logo / simpleCode 有时为空正常吗?
正常。部分银行这两项可能返回空字符串或不返回,属正常现象。

FAQ 示意

11. 内容小结

「银行卡归属地/开户行/类型查询」接口把卡号到行名、归属地、卡种的解析封装成一次 HTTP 请求,覆盖全国 500 余家银联渠道银行,未查到归属地不收费。工程接入时注意三点:

  • 鉴权走 Authorization: APPCODE,请求头携带 AppCode;
  • 判断结果先看外层 showapi_res_code,再看内层 ret_code;
  • 需要 BIN / Luhn 时显式传 needBin=1,并评估其带来的耗时。

结合多要素核验、资金结算、风控与小程序 / APP 绑卡等场景,可作为一次通用的卡信息解析能力接入业务链路。

相关文章
|
7天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
6950 9
|
5天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1400 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
6天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
869 5
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3440 10
|
14天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
1515 1
|
18天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
1898 9
Qoder 上线 Sonus 模型,Computer Use 能力全面增强

热门文章

最新文章