拿到一份几千行的客户名单,导入系统或提交检测时,一批号码被标成「格式错误」。这类报错的原因通常很集中:号码没有写成完整的国际格式。
WhatsApp 按国际格式识别号码,也就是 ITU 的 E.164 标准:国家代码 + 区号 + 本地号码。号码里不能有本地拨号用的前导 0,也不能有 00、011 这类国际出局字冠。存储时建议统一成「+ 加纯数字」,例如英国手机号写成 +447700900123。展示时可以加空格,但入库、去重和提交接口时,都应该用这个纯数字版本。
同一个号码,不同场景的写法不一样
很多「明明格式对了还报错」的情况,是把一个场景的写法拿到了另一个场景里:
- 手机通讯录:以
+开头的完整国际格式,比如+1 408 XXX XXXX、+351 21 XXX XXXX。中间带空格可以识别。 - wa.me 链接(Click to Chat):只能用纯数字国际格式,去掉
+、前导 0、破折号和括号。正确写法是https://wa.me/1XXXXXXXXXX,写成https://wa.me/+1...或带破折号都会失效。 - Meta 官方接口(Cloud API、Business Management API):参数严格按 E.164 校验。号码不规范或带非法字符时,接口直接返回 400 Bad Request,提示
Invalid parameter: phone_number must be in E.164 format。
所以名单里最好只存一种规范值(+ 加数字)。要生成链接时去掉 +,要展示时再加空格,不要反过来从展示格式往回推。
名单里最常见的错误写法
下面以英国和美国号码为例,基本覆盖了导入报错的大部分来源:
| 原始写法 | 问题 | 规范后 |
|---|---|---|
07700 900123(英国) | 缺国家代码,带本地前导 0 | +447700900123 |
+44 07700 900123 | 加了国家代码,但没去掉 0 | +447700900123 |
0044 7700 900123 | 用 00 出局字冠代替 + | +447700900123 |
011 1 408 555 0123 | 带美国出局字冠 011 | +14085550123 |
(408) 555-0123 | 缺国家代码,夹带括号和破折号 | +14085550123(需先确认是美国或加拿大号码) |
4.47701E+11 | Excel 把号码转成了科学计数法 | 尾数已丢失,只能回原始数据重新取 |
其中第二行最常见:国家代码补上了,前导 0 却留着。WhatsApp 帮助中心专门把它列为无法识别联系人的典型原因。
最后一行不算号码本身的问题,但在表格名单里很常见。用 Excel 打开 csv 时,长号码会被当成数字:开头的 + 和 0 被吞掉,超过 15 位还会丢精度。处理名单前,先把号码列设成文本格式,或者用文本编辑器直接处理原始文件。
阿根廷和墨西哥:写成国际格式了,还是不对
这两个国家在 WhatsApp 里有额外规则,通用的转换方法处理不到。
阿根廷(+54):国家代码和区号之间要插入数字 9,同时去掉当地手机号常用的前缀 15。以布宜诺斯艾利斯(区号 11)为例,本地写法 011 15 2345 6789 应写成 +54 9 11 2345 6789。加上国家代码后共 13 位数字,可以用这个位数做一次校验。
墨西哥(+52):WhatsApp 帮助中心给出的写法是在 +52 后加数字 1,即 +52 1 XXX XXX XXXX,Nextel 号码也一样。实际名单里,同一个墨西哥号码可能一部分带 1、一部分不带 1,有些外部系统也按不带 1 的写法处理。建议按你要对接的系统或检测工具的要求,统一成其中一种写法,再去重。否则同一个人会以两条记录出现。
巴西(+55):手机号第九位数字的历史写法不一致,公开资料里没有统一说明。建议把巴西号码单独成组,不要自行增删数字,以检测结果为准。
多国名单的规范化顺序

名单涉及多个国家时,按下面的顺序处理,返工最少:
- 保留原始列,新增规范化列。 原值不覆盖,出问题时可以回溯,也方便回写 CRM 时对照。
- 先确定每一行属于哪个国家。 依据国家字段、录入渠道或表单的国家选项,不要只凭号码开头猜。比如
07开头的本地号码在不同国家都可能出现。没有国家信息的本地号码,单独放进「待确认」组。 - 清理字符。 只保留数字和开头的
+,删除空格、括号、破折号、点号,以及全角数字、不可见字符等杂项。 - 去掉出局字冠。 开头的
00、011换成+。 - 补国家代码,去国内前缀 0。 这一步有例外:意大利固话的 0 属于号码本身,不能去掉。批量处理时可以用 libphonenumber 这类库按国家解析,但它按通用电信规则输出,结果不一定符合 WhatsApp 的写法。
- 套用国家特殊规则。 阿根廷补 9、去 15;墨西哥按选定的写法统一处理 1。第 5 步的库输出,也要在这一步对照检查。
- 长度校验。 E.164 号码不含
+最长 15 位,再按各国手机号长度核对。过短或过长的号码不要强行修正,放进「待人工核对」。 - 按规范号码去重。 一定要在规范化之后去重。
07700900123和+44 7700 900123在规范化之前是两条记录,之后才会合并成一条。具体做法见 WhatsApp号码去重怎么做。 - 按国家拆分文件。 每个国家一份,后续检测、核对异常和回写都更清楚。
各国国家代码和前导 0 的转换细节,可以参考 WhatsApp E.164格式转换规则。
格式对了,也不代表号码能用
格式校验只说明号码「写法正确」,不说明这个号码开通了 WhatsApp。有几类号码即使格式完全规范,在 WhatsApp 上也用不了:
- VoIP 虚拟号、免费电话(Toll-free)、付费增值号码(Premium rate)、通用接入号(UAN),WhatsApp 不支持;
- 固定电话只能通过语音验证码注册 WhatsApp Business App,个人版 WhatsApp 不支持绑定座机。
所以规范化之后,还需要检测号码状态。如果报错的是检测环节而不是导入环节,可以按 WhatsApp筛号失败原因怎么排查 里的顺序逐层定位。
规范化之后,把名单交给检测
名单按国家拆好后,可以在 NexCheck 控制台上传 txt 或 csv 文件,也可以通过 REST API 提交,结果用 Webhook 回推。返回结果按有效和无效分组,方便直接回写原始名单。WhatsApp 能检测是否开通、活跃等状态字段;号码基础检测可以单独筛出空号、设备类型和高风险号。具体检测项和单价以 WhatsApp 平台页 为准。名单里国家较多、拿不准某个国家的号码格式时,可以先查 区域页 里对应国家的说明。
名单是你自己的数据,提交前请确认来源和用途合法。
NexCheck-筛号平台
评论(0)