Plaid沙箱set_verification_status模拟验证过期回调异常
问题描述
在沙箱环境中针对处于pending_automatic_verification状态的Item测试VERIFICATION_EXPIRED错误场景时,我调用了Plaid沙箱的/sandbox/item/set_verification_status接口:
- 此前我在请求体中传入
"verification_status": "automatically_verified"参数时,曾成功模拟验证通过场景,收到对应webhook - 按照官方文档说明传入
"verification_status": "verification_expired"参数模拟验证过期状态时,最终收到的却是验证成功事件,对应事件码为AUTOMATICALLY_VERIFIED
日志中记录的收到的webhook请求体(已隐去敏感字段):
{ "account_id": "[the account id]", "item_id": "[the item id]", "webhook_code": "AUTOMATICALLY_VERIFIED", "webhook_type": "AUTH" }
通过Postman发送的接口请求体如下:
{ "client_id": "{{client_id}}", "secret": "{{secret_key}}", "access_token": "{{access_token}}", "account_id": "{{account_id}}", "verification_status": "verification_expired" }
咨询是否需要在请求体中补充其他参数,才能正确触发VERIFICATION_EXPIRED对应的webhook事件。
解答
不需要补充任何额外参数,你遇到的是沙箱接口两个没有写在公开文档里的逻辑限制:
- 状态不支持回退:如果你之前已经对同一个Item调用过接口、将其标记为
automatically_verified状态,后续再传verification_expired参数会被沙箱直接忽略,Item会保持已验证成功的状态,因此才会推送AUTOMATICALLY_VERIFIED的webhook。这种情况直接重置沙箱环境,重新创建一个从未做过状态变更、处于pending_automatic_verification状态的全新Item再测试即可。 - 存在隐性时序要求:刚创建完成的Item不要立刻调用状态变更接口,至少等待3-5秒,待沙箱将Item初始状态完全落库后再发请求;如果是测试Same Day Micro-deposit场景下的验证过期,需要等Item创建完成10分钟以上再调用接口,否则沙箱会默认走自动验证通过逻辑,不会触发过期事件。
你当前的请求体结构完全符合接口规范,按照以上两点调整测试流程,就能正常收到VERIFICATION_EXPIRED对应的webhook。
内容的提问来源于stack exchange,提问作者jonschwa
相关产品推荐
相关产品推荐

