Alpaca 券商资金划转
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/alpaca-broker-funding-transfers-sh-zg45dz,并将该技能注册到你的 AI 助手中以便后续调用。
技能介绍
要解决什么问题
券商账户里的钱总要进出。Alpaca Broker API 给的是三条资金通道——ACH、Wire、Funding Wallet——但文档把「绑卡」和「划款」混在一起讲,接入时很容易踩坑:以为创建一条银行关系就能转账,结果发现关系还在 QUEUED;或者对每笔转账轮询状态,却发现经典转账早有 SSE 推送。
这个技能把资金模型拆开,明确告诉你什么时候该创建关系、什么时候该发起转账、什么时候该监听事件而不是轮询。
核心模型:关系与转账分离
Bank Relationship(/ach_relationships、/recipient_banks)只是登记一个外部银行账户,本身不动钱,有独立状态。Transfer(/transfers)通过 relationship_id 或 bank_id 引用关系,才是真正触发资金移动的实体。一条关系可以支撑多笔转账。
三条通道的差异:
- ACH:
INCOMING + OUTGOING,仅美国境内,推荐通过 Plaidprocessor_token创建 - Wire:仅
OUTGOING,支持境内外(SWIFT);入金由汇款行发起,需 FFC 指令才会自动入账 - Funding Wallet:走
/v1beta接口,多币种,支持swift_wire/local_rails
创建转账时 amount 是十进制字符串且必须大于 0;additional_information 只在 wire 请求里可用,用在 ACH 上会返回 422。
事件与轮询不能一概而论
这是最值得注意的可靠性差异:经典 ACH/wire 转账有 SSE 流(/v2/events/funding/status),统一推送 Transfer、BankRelationship、WireBank、FundingWallet 四类实体,且支持 since/until 回放。但 Funding Wallet 的单笔转账状态并不进事件流,只能轮询 GET /v1beta/.../funding_wallet/transfers/{id}。
所以技能建议:按通道决定消费方式,再做一个状态对账轮询器兜底(SSE 可能丢事件),并且只轮询处于非终态的转账。终态包括 COMPLETE、REJECTED、CANCELED、RETURNED。
注意点
- 电汇手续费自 2022-06-01 起对出金收取,UI 要区分
requested_amount和实际到账金额 - Travel Rule:所有入金不论金额都要传汇款人信息,保留至少 5 年
- 入金 wire 需要 FFC 指令才会自动入账
- 国际电汇漏填中间行 BIC 可能导致自动选择路由、延迟或额外费用
- Sandbox 电汇仅工作日推进,周末提交要等到周一
immediate字段已废弃并被静默忽略,不要再传
另外,如果生产环境用 omnibus/sweep 账户模式(用户付款到公司账户,再通过 journal 内部划拨),那么这个技能处理的只是「公司账户 ↔ 外部世界」这一段。
使用场景
- 券商 App 需要让用户绑定美国银行账户并发起 ACH 入金,技能负责创建 ACH relationship、校验 APPROVED 状态并创建转账。
- 跨境电汇出金前需录入受益人银行信息,必须补充中间行 BIC,否则可能延迟或产生额外费用。
- 资金团队要把经典转账状态接进后端事件流,同时对 Funding Wallet 的单笔转账写轮询对账逻辑。
- 客服需要排查一笔被退回的 ACH,要能区分 RETURNED、REJECTED、CANCELED 终态并查看原因字段。
适合人员
- 券商技术团队的后端工程师:负责把 Alpaca Broker API 的资金入金与出金能力接入自家交易系统。
- 券商运营岗:日常处理用户电汇申请,需要核对受益人银行、中间行信息与到账金额。
- 合规或风控岗:关注 Travel Rule 汇款人信息留存、电汇手续费展示和状态审计留痕。
- 金融基础设施创业者:在 Alpaca 上搭建经纪业务,需要设计资金通道与内部记账的边界。