您在结账、KYC 流程或风险系统中有信用卡数据流入,您需要一种快速的方法来验证 BIN(前 6 位数字)并识别品牌、类型和发行者元数据——这周,而不是下个季度。到本文结束时,您将能够使用 Zyla API Hub 上的信用卡验证器 - BIN 检查 API 验证 BIN 并检索卡品牌、类型和发行者信息——完整的复制粘贴 cURL 和 Python 示例。
此 API 的功能及其重要性
信用卡验证器 - BIN 检查 API 返回给定 BIN(卡号的前 6 位数字)的元数据。通过一次 GET 请求,您将了解 BIN 是否有效,并获取以下数据:
- 卡品牌(例如,AMERICAN EXPRESS)
- 卡类型(例如,CREDIT)
- 可用时的卡级别
- 发行者数据(可用时)
- 国家信息(可用时)
团队使用 BIN 检查来预验证输入、自动选择卡品牌 UI 元素、应用额外的欺诈规则并路由支付。由于请求仅使用前 6 位数字,因此与发送完整 PAN 相比,它减少了 PCI 范围。
此 API 是 Zyla API Hub 上金融与支付类别的一部分,这是一个拥有超过 10,000 个公共 API 的市场,您可以在一个帐户、一个 API 密钥和一个订阅模型下管理您的使用情况,并在您的堆栈增长时调用多个 API。
在 Zyla API Hub 上入门
要尝试信用卡验证器 - BIN 检查 API:
- 打开 API 列表:开始 7 天试用信用卡验证器 - BIN 检查 API。
- 点击订阅或开始免费试用(如有)。此 API 通常支持 7 天试用,以帮助您快速构建和测试。请查看 API 页面以获取当前访问选项和定价。
- 从仪表板复制您的 API 密钥。
所有请求在 Authorization 头中使用 Bearer 令牌。计费为订阅 + 配额(而不是按调用计费)。没有免费计划;使用试用版进行评估。请确保您的密钥安全;不要将其嵌入公共前端代码中。
端点概述
此 API 暴露一个用于 BIN 验证和元数据的 GET 端点:
- 方法:GET
- URL:https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker
- 查询参数:
- bin(字符串,必需):卡的前 6 位数字(BIN/IIN)。示例:346350
- 身份验证:Authorization: Bearer YOUR_API_KEY
高级行为:您发送一个 BIN,API 将返回状态代码、成功标志、布尔值 isValid 字段、消息和包含卡元数据的数据对象。如果某些属性不可用,响应将反映出这一点,使用占位符或 null。
您可以复制/粘贴的 cURL
以下是针对实时端点的完整工作示例。将 YOUR_API_KEY 替换为您在 Zyla API Hub 中的密钥:
curl -s -X GET "https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=346350" \
-H "Authorization: Bearer YOUR_API_KEY"
官方示例响应
这是查询 BIN 346350 时端点返回的官方示例有效负载:
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
您可能会使用的字段说明:
- status:服务返回的数字 HTTP 类状态代码。
- success:指示请求已成功处理。
- isValid:如果 BIN 存在并被识别,则为真。
- message:可读的人类验证摘要。
- data:卡元数据,任何缺失或受限的信息可能作为占位符或 null 返回。
Python 示例:调用端点并解析字段
此脚本发送一个 BIN,检查有效性,并打印用于路由或显示逻辑的选定属性。
import os
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
BIN = "346350"
url = "https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker"
params = {"bin": BIN}
headers = {
"Authorization": f"Bearer {API_KEY}"
}
resp = requests.get(url, params=params, headers=headers, timeout=10)
resp.raise_for_status()
data = resp.json()
# 基本的合理性检查
if not data.get("success"):
raise RuntimeError(f"API 报告失败: {data}")
# 使用 isValid 决定下一步
if data.get("isValid"):
meta = data.get("data", {})
brand = meta.get("card_brand")
type = meta.get("card_type")
level = meta.get("card_level")
issuer = meta.get("issuer_name_bank")
country = meta.get("iso_country_name")
print(f"BIN {BIN} 是有效的。")
print(f"- 品牌: {brand}")
print(f"- 类型: {type}")
print(f"- 级别: {level}")
print(f"- 发行者: {issuer}")
print(f"- 国家: {country}")
else:
print(f"BIN {BIN} 是无效的。消息: {data.get('message')}")
您可以测试的其他响应示例
当您集成时,请确保 JSON 形状在解析器中保持稳定。以下是使用相同官方有效负载的其他完整示例,以便您可以一致地验证日志记录、持久性和测试路径:
日志管道示例
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
存储示例(例如,Redis/数据库记录)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
下游丰富服务示例
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
如何将其连接到您的支付或风险流程
开发人员在生产中交付的实用模式:
- 客户端 UX 辅助:用户输入前 6 位数字后,立即将 BIN 发送到您的后端,调用 API,并显示检测到的品牌(例如,AMERICAN EXPRESS),以减少输入错误。请将 API 密钥保留在服务器端。
- 路由规则:使用 card_type 来引导交易或应用风险阈值。例如,在下游评分逻辑中将 CREDIT 与 DEBIT 处理不同。
- KYC/欺诈门:如果 isValid 为假,则阻止尝试或要求在继续之前进行逐步验证。
- 发行者控制:如果有发行者数据,请根据银行或国家应用业务规则。要小心:发行者字段可能被限制或为 null。
- 缓存:缓存最近的 BIN 查找数小时或数天(根据您的风险承受能力)以减少延迟和配额使用。BIN 元数据变化不频繁,但始终允许刷新逻辑。
验证、安全性和 PCI 考虑
仅将 BIN(前 6 位数字)发送到此端点。请勿在日志中传输或存储完整的 PAN。请确保 Authorization 头也不在日志中。构建一个小的服务器端适配器,接受来自客户端的 BIN,调用此 API,并仅返回您需要呈现的内容。如果您存储结果,请仅存储所需的元数据,并清理 null 或占位符值。
您应该围绕设计的行为
- 受限字段:某些发行者字段可能是“仅限 API”或被屏蔽。不要假设发行者名称/网站/电话非空。
- 空值处理:国家字段可以为 null;确保您的代码能够容忍而不会抛出错误。
- 消息和状态:同时使用 isValid 和 status 来构建面向用户的消息或日志。
- 重试和超时:设置合理的超时(例如,5-10 秒),仅在网络超时时重试,而不是在 4xx 验证结果上重试。
- 幂等性:BIN 检查是只读的;您可以安全地重试网络故障并进行退避。
端到端示例:中间件模式
以下是您可以复制的实用流程:
- 前端通过 HTTPS 将前 6 位数字(例如,346350)发送到您的服务器。
- 您的服务器使用 Authorization: Bearer YOUR_API_KEY 调用 BIN 检查端点。
- 如果 success 和 isValid 为真,则向客户端响应品牌和类型,以便 UI 反映“AMERICAN EXPRESS · CREDIT”。
- 如果无效,请提示用户在允许任何卡提交步骤之前验证输入。
- 可选地按 BIN 缓存短 TTL,以减少重复输入的往返次数。
字段到典型结账 UI 的逐字段映射
- 品牌徽章:使用 data.card_brand(例如,“AMERICAN EXPRESS”)。
- 卡类型提示:使用 data.card_type(例如,“CREDIT”)。
- 发行者标签:使用 data.issuer_name_bank(如果不是占位符);否则省略。
- 国家标志或文本:使用 data.iso_country_name(如可用)。
在呈现之前始终防范占位符(例如,“------”)或 null。
测试清单
- 发送已知的 BIN 并断言 isValid 为布尔值。
- 断言 data.bin_iin 的存在与查询的 BIN 匹配。
- 验证品牌和类型字段是字符串并且安全呈现。
- 确保 null 或占位符值不会破坏您的 UI 或风险引擎。
- 确认所有调用中都存在 Authorization 头,并且从未记录。
通过 MCP 与 AI 代理合作
如果您使用 AI 编码工具(例如,Claude Code、Cursor、Windsurf)自动化工作流程,您可以通过模型上下文协议(MCP)调用 Zyla API。配置您的 MCP 兼容客户端以使用 Zyla MCP 端点并提供您的 API 密钥。请在此处查看集成详细信息:MCP。这允许代理触发相同的 BIN 检查工作流程,同时您的服务器仍然控制密钥存储和日志记录。保持提示简洁,并在支付流程中验证输出。
操作提示
- 监控:跟踪每个请求的成功、状态和延迟。对失败的激增发出警报。
- 限流:实施客户端速率限制和指数退避,以成为良好的 API 公民。
- 版本控制:供应商响应可能会演变;将您的解析器固定到已知字段并忽略意外的额外字段。
- 数据生命周期:对缓存的 BIN 结果设置明确的 TTL,并在对卡处理逻辑进行重大更改时重新验证。
在不同环境中重用示例响应
对于 CI、本地开发和暂存,使用下面的官方示例有效负载作为夹具,以便您可以测试您的映射器和 UI,而不会泄露真实的卡数据。保持形状的单一真实来源。
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
生产就绪清单
- 环境变量:将 YOUR_API_KEY 存储在秘密管理器中。
- 网络策略:允许出站 HTTPS 到 zylalabs.com 以获取端点 URL。
- 时间限制重试:仅重试网络错误;不要重试验证失败。
- 可观察性:记录请求 ID 和剥离的响应(不带秘密)以供审计。
- 访问控制:限制可以调用 BIN 检查器的服务,以减少横向风险。
常见陷阱及如何避免
- 带有暴露密钥的客户端调用:始终通过您的服务器代理。
- 假设发行者或国家始终存在:优雅地处理占位符和 null。
- 仅解析消息文本:使用 isValid 和 status 进行逻辑;消息是给人类的。
- 过期缓存:设置合理的 TTL,并在检测到不一致的元数据时使其失效。
接下来该去哪里
浏览其他金融与支付 API,并在 Zyla API Hub 下将您的集成合并到一个帐户中。使用单个 API 密钥和订阅将您的风险、支付和报告用例保持在一个生态系统中。
常见问题解答
此 API 是否验证完整的卡号?
不。该端点验证 BIN(前 6 位数字)并返回相关的元数据。请勿发送完整的 PAN。
需要什么身份验证?
在每个请求的头中发送 Authorization: Bearer YOUR_API_KEY。
是否有免费计划?
没有免费计划。请查看 API 列表以获取当前访问权限。通常提供 7 天试用以评估服务。
我应该多久缓存一次 BIN 结果?
BIN 元数据变化不频繁。根据您的风险态度和刷新计划进行缓存。刷新时始终处理 nulls/占位符。
我如何从 AI 代理调用此 API?
使用 MCP 兼容客户端并将其指向此处记录的 Zyla MCP 端点:MCP。将密钥存储在安全的地方,并在操作之前验证输出。
准备好交付 BIN 验证了吗?在市场上开始评估并获取 API 密钥:开始 7 天试用信用卡验证器 - BIN 检查 API。