Agent Skills
返回列表
💻

Alpaca券商日志

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/alpaca-broker-journals

技能介绍

解决什么问题

Alpaca 券商账户体系里,资金在慢速银行通道上跑,但产品体验要求「秒到账」。Journals 机制解决的是这个矛盾:在你自己的 omnibus 账户内部,把预先归集到 firm/sweep 账户的钱或股票,瞬间划转到用户账户。典型场景是 instant funding、cashback 和注册送股。它只动内部账本,不触碰外部银行世界——那是 alpaca-broker-funding-transfers 的职责。

核心能力

  • 两种 entry_type:JNLC 走现金,firm ↔ user 双向;JNLS 走证券,仅 firm → user,用于送股奖励。
  • 端点:POST /v1/journals 单笔、POST /v1/journals/batch 一对多(仅 JNLC)、POST /v1/journals/reverse_batch 多对一(仅 JNLC)、GET 查询与 DELETE 取消。
  • 批量是全有或全无:任何一个条目校验失败,整个 batch 作废,响应里逐条给出 error_message。
  • 幂等重试:创建时带 Idempotency-Key(建议用客户端生成的 UUID)。同 key + 相同 body 返回原 journal,同 key + 不同 body 返回 422。这是资金操作重试安全的正确姿势——网络超时后盲目重发可能双重入账。
  • 状态流:GET /v2/events/journals/status 以 SSE 推送状态变更;v1 是 legacy,不要用。

状态机里的坑

正常路径是 queued → sent_to_clearing → executed,但有两条教训:

  1. executed 不等于最终。未获许可的 journal 可能被 cashiering 撤销,必须对齐后续事件做对账。
  2. correct 会产生新的 journal ID。纠正不是原地编辑,而是取消原单、新建一张修正金额的单。按 ID 对账时必须同时处理原 ID(变 correct/cancelled)和新 ID(真实资金流向)。

适用边界

  • 现金归集/journals 用途需要 Alpaca 审核,可能还涉及本地牌照,需先咨询法务。
  • DELETE 只对 pending 状态有效(204);要撤销已执行的 journal,只能反向创建一张镜像 journal。
  • 余额不足时创建返回 403;触及日限额会退回 pending 等待人工审批。
  • GET /v1/journals 结果集超过 10 万条会 422,务必用 after/before/limit 过滤。
  • 涉及资金移动的 journal 要带 Travel Rule 字段(transmitter_*);测试可用 description 里的 sandbox fixtures 模拟 rejected/pending。

使用场景

  • 券商后端工程师在实现「即时到账」功能时,需要将预先归集到sweep账户的现金通过JNLC journals批量划转到多个用户账户,确保资金秒级可用
  • 金融科技团队处理网络超时后的重试逻辑,需用Idempotency-Key生成唯一交易ID,避免因POST /v1/journals超时导致的重复入账问题
  • 支付系统运维人员监控journal状态变更,通过GET /v2/events/journals/status的SSE流实时跟踪queued→sent_to_clearing→executed的状态流转
  • 交易系统开发者在用户注册送股场景中,需通过JNLS journals将公司账户的股票划转到新激活的用户账户,并处理correct状态产生的新journal ID对账逻辑

适合人员

  • 券商后端工程师:需要理解Journals在omnibus账户内部的资金划转机制,实现即时到账、cashback等功能
  • 金融科技产品经理:需掌握Journals与外部银行转账的边界,设计符合Alpaca审核要求的资金归集产品流程
  • 支付系统运维人员:需要处理Journals状态机中的pending/canceled等异常状态,确保资金对账的准确性
  • 交易系统开发者:在实现注册送股、分润等业务时,需处理JNLS证券划转的账户状态校验和correct新ID逻辑