Skip to content

feat(token): VCN fees, revoke --id/--member, list --status, revoke-quote (token-cli 0.10.5) - #79

Merged
woshilixiaohao merged 3 commits into
mainfrom
fix/vcn-fee-hints
Nov 10, 2026
Merged

woshilixiaohao merged 3 commits into
mainfrom
fix/vcn-fee-hints

Conversation

@woshilixiaohao

@woshilixiaohao woshilixiaohao commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

token-cli 0.10.5 for PhotonPay virtual cards: show both fees, and support cancelling a card from the orchestrator's A2A revoke-vcn scenario.

Command Change
payment-tokens vcn-quote Prints Open Fee, Charge Total and Cancel Fee (taken from the refund on revoke)
payment-tokens create --funding-charge-no Confirms with Charge / Open fee / Cancel fee instead of Freeze / Fee (a funded card freezes nothing)
payment-tokens revoke Id from --id or the positional argument; --member scopes the revoke to that end user (another member's token is NOT_FOUND); a revoked VCN prints Consumed / Fee / Refunded
payment-tokens list --status filter (upper-cased)
payment-tokens revoke-quote New, read-only: live card balance, cancel fee, whether it can be cancelled, expected refund (--id / --member)

verb-schema, README and SKILL.md updated to match.

Platform side: agenzo-platform MR !514 (member-scoped revoke, status filter, settlement in the revoke response, revoke-quote; revoke is rejected when the balance cannot pay the cancel fee).

Tests

  • npx vitest run apps/token-cli: 283 passed
  • tsc --noEmit, check:lockfile, pre-commit hooks passed
  • Local end to end against the PhotonPay sandbox through the orchestrator: open card, then cancel via revoke --id --member (refunds 888 / 1000 / 388 match the fee table); a revoke with another member returned RESOURCE_NOT_FOUND and the card stayed ACTIVE

Release

After merge, publish @agenzo/token-cli@0.10.5 to npm.

vcn-quote prints Open Fee, Charge Total and Cancel Fee (taken from the refund on revoke). create --funding-charge-no confirms with Charge / Open fee / Cancel fee instead of Freeze / Fee, since a funded card freezes nothing. verb-schema, README and SKILL.md describe fee_cents as the open fee and add cancel_fee_cents.
… card cancel

payment-tokens revoke takes the id from --id as well as the positional argument (flag-only callers such as the orchestrator) and --member to scope the revoke to that end user (platform answers NOT_FOUND for another member's token). A revoked VCN prints Consumed / Fee / Refunded from vcn.settlement. payment-tokens list adds --status (upper-cased).
@woshilixiaohao woshilixiaohao changed the title feat(token): show VCN open and cancel fees separately (token-cli 0.10.5) feat(token): VCN fee display, revoke --id/--member and list --status (token-cli 0.10.5) Nov 10, 2026
Read-only quote of cancelling a VCN: live card balance, cancel fee, whether it can be cancelled and the expected refund (GET /payment-tokens/{id}/revoke-quote, --id / --member like revoke). A card whose balance does not cover the cancel fee cannot be cancelled; revoke then fails and the card stays active. README, SKILL.md and verb-schema updated.
@woshilixiaohao woshilixiaohao changed the title feat(token): VCN fee display, revoke --id/--member and list --status (token-cli 0.10.5) feat(token): VCN fees, revoke --id/--member, list --status, revoke-quote (token-cli 0.10.5) Nov 10, 2026
@woshilixiaohao
woshilixiaohao merged commit c0c1e04 into main Nov 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant