Credits Cards
Transactions 与消费顺序
通过 Transaction 和 Entries 原子、幂等地改变 Credits。
Topup 和 Charge 都产生一条 CreditsTransaction。每张受影响 Card 对应一条不可变 CreditsTransactionEntry,Entry 同时承担账本职责。
await bureau.credits.charge({
user_id: "user_123",
credits: 250_000,
source: "model_usage",
ref: "request_456",
idempotency_key: "model_usage:request_456",
});未指定 Card 时,服务按到期时间从早到晚消费有效 Ephemeral Cards,再消费 Primary Card。指定 Card 时不会跨 Card。总额度不足时整体失败并返回 402,不会产生部分扣费。
const transactions = await bureau.credits.transactions.list({ user_id: "user_123" });
const entries = await bureau.credits.history.list({ transaction_id: transactions[0].transaction_id });