大多数供应商问题早在进入采购系统之前,就已经公开可见。一位与制裁有关联的新董事出现在企业注册记录中。一家工厂地址从供应商自己的网站上消失了。当地新闻报道了一起罢工、火灾或突击检查。某项认证悄然过期。这些都不是秘密,但几乎都没有人注意到,因为没有人以足够的频率、用正确的语言去查看正确的信息来源。
本指南提供了一套监控供应商公开信息足迹的实用方法:应关注哪些信息来源、如何将供应商解析为正确的实体、如何从每家供应商实际运营的地区收集信息,以及如何将原始变化转化为采购或风险团队可以据以行动的警报。
关键要点
- 监控变化,而非状态。供应商足迹最重要的时刻,是它发生变动的时候:新的所有者、失效的证书、变更的地址、新的上市信息。
- 先将每家供应商解析为一个法律实体。用交易名称去比对制裁名单只会产生噪音,用带有标识符的注册实体去比对才能得出答案。
- 从供应商所在的国家和语言中收集信息。当地的注册记录、当地新闻,以及供应商自身网站的本地版本,往往携带最早的信号。
- 了解你所用信息源的许可条款。有些筛查数据可任意用途免费使用,有些仅限非商业用途。
- 保持公司层面且适度的做法。目标是供应商风险,而不是对个人的监视。
为何压力在上升
监管正在把供应商尽职调查从良好实践变为强制义务,尽管时间表仍在变动,规划前应咨询法律顾问。
- 欧盟强迫劳动条例自2027年12月14日起适用,禁止使用强迫劳动生产的产品进入欧盟市场。
- 欧盟森林砍伐条例在2025年12月进一步修订后,其主要义务自2026年12月30日起适用,对微型和小型经营者则自2027年6月30日起适用。
- 欧盟企业可持续发展尽职调查指令在2026年被推迟并收窄适用范围:现自2029年7月26日起适用,且仅适用于最大规模的公司,例如员工人数超过5,000人、全球营业额超过15亿欧元的欧盟公司。
- 在美国,与强迫劳动相关的公司UFLPA实体清单由国土安全部强迫劳动执法特别工作组维护并定期更新。
无论你的具体义务是什么,实际要求都是相同的:了解你的供应商是谁,并在其发生变化时能够察觉。
第一步:将每家供应商解析为一个实体
供应商主文件通常只是交易名称和地址的列表。直接用它去比对制裁名单和新闻,会产生大量误判,同时又会漏掉真正的匹配。应先做解析。
针对每家供应商,需要确定:
- **法律实体:**从国家企业注册机构获取的注册名称、司法管辖区和注册编号。
- 法律实体标识符(LEI)(如存在)。GLEIF以CC0许可发布LEI数据,包括谁拥有谁的信息,免费提供,且每天更新三次。
- 母公司及关键关联实体,因为制裁和执法往往针对所有者,而不是你实际付款的交易公司。
- **运营场所:**工厂、仓库和办公室,这些可能与注册办公地址位于不同国家。
这是最繁琐但也最有价值的一步。之后的每一项核查,其准确性都取决于所核查的实体是否正确。在构建B2B潜客数据库中,也出现了同样的实体解析原则,只是用途不同。
第二步:确定需要监控的足迹范围
不是每个信息源都值得以相同的频率去关注。应根据信号变化的速度和严重程度来匹配监控频率。
| 信息源 | 反映的信息 | 建议频率 |
|---|---|---|
| 制裁及限制名单 | 该实体、其所有者或场所是否被列为受限对象 | 每日 |
| 强迫劳动实体清单 | 某实体是否在强迫劳动语境下被列入清单 | 每次更新时 |
| 企业注册记录 | 董事、所有权、注册地址、状态、破产情况 | 每周 |
| 供应商自身网站 | 场所、产品、宣称的认证、联系方式 | 每周 |
| 本地及行业新闻 | 事件、罢工、调查、关闭 | 每日 |
| 招聘信息及员工信号 | 扩张、缩减、迁移 | 每周 |
| 认证机构目录 | 所宣称的证书是否有效且为最新 | 每月 |
对于各类名单,应前往一手发布方查询。在美国,财政部外国资产控制办公室发布特别指定国民名单。欧盟发布金融制裁综合名单。在英国,自2026年1月28日起,由外交、联邦与发展事务部发布的英国制裁名单是所有英国制裁指定的唯一来源;旧版综合名单仅作参考保留。聚合的筛查数据集可以节省工作量,但需阅读许可条款:例如OpenSanctions以知识共享非商业许可发布,因此商业筛查需要付费许可。
关于员工信号,在追踪裁员和员工变动中有更深入的介绍;关于本地新闻收集,在用于新闻和媒体监测的住宅代理中有相关说明。
第三步:从供应商实际运营的地区收集信息
一家位于越南、土耳其或墨西哥的供应商,首先会用越南语、土耳其语或西班牙语,在本地网站、本地新闻和本地注册记录中发布信息。许多企业网站也会向来自不同国家的访问者展示不同的内容:一个带有本地地址和证书的本地版本网站,以及一个经过精心打磨的全球版摘要网站。如果你只在总部阅读英文的全球版网站,那么你所阅读的正是在出问题时最不可能发生变化的那个版本。
应从供应商所在的市场进行收集:
- 使用当地语言的搜索词,同时结合英文名称,包括以其原始文字书写的注册名称。
- **像本地访客一样加载供应商网站。**供应商所在国家的住宅出口IP会展示网站的本地版本。使用Shifter的网关时,国家参数是用户名的一部分,例如
customer-USERNAME-country-vn,配合会话ID可在多页面访问中保持同一IP。 - 在每次采集时记录采集所使用的观察点(vantage point),因为页面展示的内容取决于从何处加载。观察点标准一文中阐述了这样做的理由。
第四步:检测变化,而非状态
监控真正有用的输出,是一份变化记录:变化的内容、发生的位置以及起始时间。应对每个受监控页面存储归一化的快照,并在每次访问时进行比对。
import difflib
import hashlib
import json
import re
import urllib.request
from datetime import datetime, timezone
from pathlib import Path
def fetch_text(url, proxy=None):
handlers = [urllib.request.ProxyHandler({"http": proxy, "https": proxy})] if proxy else []
opener = urllib.request.build_opener(*handlers)
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0 supplier-monitor"})
with opener.open(req, timeout=45) as r:
html = r.read().decode("utf-8", "replace")
html = re.sub(r"(?is)<(script|style|noscript).*?</\1>", " ", html)
text = re.sub(r"(?s)<[^>]+>", " ", html)
return re.sub(r"\s+", " ", text).strip()
def check(supplier, url, store=Path("snapshots"), proxy=None):
"""Compare a supplier page with its last snapshot. Returns a change record or None."""
store.mkdir(exist_ok=True)
key = hashlib.sha256(f"{supplier}|{url}".encode()).hexdigest()[:16]
path = store / f"{key}.json"
text = fetch_text(url, proxy)
now = {"supplier": supplier, "url": url, "text": text,
"sha256": hashlib.sha256(text.encode()).hexdigest(),
"at": datetime.now(timezone.utc).isoformat(timespec="seconds")}
before = json.loads(path.read_text()) if path.exists() else None
path.write_text(json.dumps(now))
if before is None or before["sha256"] == now["sha256"]:
return None
diff = difflib.unified_diff(before["text"].split(". "), text.split(". "), lineterm="", n=0)
return {"supplier": supplier, "url": url, "since": before["at"], "at": now["at"],
"changes": [d for d in diff if d[:1] in "+-" and d[:3] not in ("+++", "---")][:20]}
在实践中,应在比对之前过滤掉噪音:日期、轮播横幅、cookie提示和会话令牌在每次加载时都会变化,但并无实际意义。尽可能监控特定板块,例如场所页面或认证页面,而不是整个网站。
第五步:分诊、上报并留存证据
原始变化本身并不等于警报。应通过反映业务实际关切的规则来对其进行分流处理。
| 严重程度 | 示例 | 应对措施 |
|---|---|---|
| 严重 | 该实体、其所有者或场所在制裁或强迫劳动名单中被匹配到 | 立即上报合规部门;在审查完成前暂停新订单 |
| 高 | 所有权变更、破产申请、可信的严重事件报告 | 数日内审查;联系供应商 |
| 中 | 宣称的证书在颁发机构目录中已查不到;网站上某场所被移除 | 排队进行核实 |
| 低 | 新产品、新联系方式、常规网站编辑 | 记录到供应商档案中 |
有两项做法,决定了监控信息流与可站得住脚的流程之间的区别。第一,在采取行动前由专人确认每一项严重匹配:名称匹配比对名单经常出错,而标识符匹配远比名称匹配可靠。第二,留存所见内容。今天显示出问题的页面,明天可能就被编辑掉,因此应连同其URL、整页图像、HTML、时间和观察点一并采集,并对文件进行哈希处理。用于法律纠纷的相同留存方法,在从在线商品列表构建可用于法庭的证据中有描述。
保持适度
供应商监控关注的是公司。但它很容易演变为收集关于个人的信息:董事、所有者、员工。应将其限制在风险评估真正需要的范围内,因为在许多司法管辖区,董事和所有者的姓名属于个人数据,数据保护规则同样适用于信息收集。应使用公开信息来源,遵守各网站的条款,控制采集节奏,并避免采集任何需要登录才能访问的内容,除非你有权限访问。在法律地位不明确的情况下,应在采集之前而非之后咨询法律顾问。
结论
供应商风险很少是隐藏的。它分散在注册记录、名单、网站和本地新闻中,涉及多种语言和多个国家,并且在没有任何通知的情况下发生变化。一套监控方法,如果能将每家供应商解析为真实的实体,以适当的频率关注正确的信息来源,从供应商自身所在的市场收集信息,并针对变化而非状态发出警报,就能在审计发生之前的数周甚至数月,揭示出大多数重要问题。
监管时间表还会继续变动。但它们所共同要求的实际内容(了解你的供应商,并在其发生变化时察觉到)不会改变。
信息来源与参考资料
- 关于禁止在欧盟市场销售强迫劳动产品的(欧盟)2024/3015号条例。自2027年12月14日起适用。
- 修订(欧盟)2023/1115号无森林砍伐产品条例的(欧盟)2025/2650号条例。主要义务自2026年12月30日起适用;对微型和小型经营者自2027年6月30日起适用。
- 修订企业可持续发展尽职调查指令的(欧盟)2026/470号指令。自2029年7月26日起适用,并修订了适用门槛。
- 美国国土安全部,UFLPA实体清单。
- 英国外交、联邦与发展事务部,英国制裁名单。
- 美国财政部外国资产控制办公室,制裁名单查询。
- GLEIF,开放数据与Golden Copy。
- OpenSanctions,许可说明。
- Shifter,住宅代理地理定位与会话文档。
本文为一般性信息,不构成法律建议。请就各司法管辖区内的具体义务咨询法律顾问。