跳转到内容

白标用户信息总览

白标用户信息接口用于查询登录用户关联的白标 ID。它只适合处理 IBKR 白标体系相关的身份标识,不是普通账户资料、资产、权限或用户联系方式接口。

app.reqUserInfo(reqId)

返回结果通过 userInfo() 回调接收:

def userInfo(self, reqId, whiteBrandingId):
...

这个接口不是普通账户资料接口。它不会返回姓名、邮箱、手机号、账户余额、持仓或权限列表,只返回与白标体系相关的 whiteBrandingId

官方说明里有一个重要边界:如果用户名没有关联白标实体,请求可能不会返回有效白标信息。实际开发时要同时处理两种情况:

  • 收到 userInfo() 回调,但 whiteBrandingId 是空字符串。
  • 请求已发出,但在超时时间内没有收到 userInfo() 回调。
问题是否适合
判断用户是否关联 White Branding ID适合
获取账户资产、现金、保证金不适合,使用账户更新或账户摘要接口
获取持仓、成本、盈亏不适合,使用持仓或 PnL 接口
获取用户邮箱、实名资料不适合,TWS API 不提供这类普通资料查询
阶段方法
请求reqUserInfo(reqId)
接收userInfo(reqId, whiteBrandingId)

它是一次性请求,不需要像行情、持仓、PnL 那样调用取消方法。

字段中文含义说明
reqId请求编号由程序自己分配,用于匹配请求和回调
whiteBrandingId白标 ID用户关联的白标标识;普通账户可能为空字符串,也可能没有回调

TWS 模拟账户检查时返回了 userInfo() 回调,但 whiteBrandingId 为空字符串。这表示接口链路可用,只是用户没有关联可见的白标 ID。

CONNECTED=True
REQUEST_SENT=True
USER_INFO_CALLBACK_RECEIVED=True
USER_INFO_ROW_COUNT=1
ROWS=[{'reqId': 9401, 'whiteBrandingId_empty': True, 'whiteBrandingId_length': 0}]
WHITE_BRANDING_ID_EMPTY=True
WHITE_BRANDING_ID_LENGTH=0
INFO_CODES=2104,2106,2158
NON_INFO_ERROR_COUNT=0
IS_CONNECTED_AFTER_DISCONNECT=False

公开文档和日志中不应直接打印真实白标 ID。示例只输出是否为空和长度。

表现含义处理方式
收到回调,whiteBrandingId 非空用户有关联白标 ID保存到受控配置或后台,不要写入公开日志
收到回调,whiteBrandingId 为空用户没有可返回的白标 ID按“无白标信息”处理
超时未收到回调,且无非信息类错误用户可能无白标关联,或版本/环境不返回给出温和提示,不要当成连接失败
出现非信息类错误请求失败或版本不支持记录错误码并进入错误排查

IBKR Campus: TWS API Documentation