---
name: check-envoy-account
description: |
  Read the user's Envoy balance, limits, connected services or recent spending, and report it without changing anything. Use when the user says "what's my balance", "how much did I spend", "show my recent transactions", "what's my Envoy limit", or "what can I pay for with Envoy". Read-only: it never starts, resumes or cancels a payment and never releases card details. For buying, paying, recovering or cancelling a purchase, use pay-with-envoy.
allowed-tools:
  - get_account
  - list_transactions
---

# Check an Envoy account

Read the user's account or spending history and tell the user the answer. No money moves.

Support revision: `envoy@2026-10` (support metadata only).
Last updated: 2026-10-14.

Call the connected Envoy server's published tools, and use their schemas. Every reply is a short briefing: plain English for the user, a `What to do:` line for you, then one line of JSON. Read the briefing first. Tell the user its first part in your own words. Take `account`, `transactions` and `next_cursor` from the JSON line or `structuredContent`. Never show the JSON, codes, ids or timestamps to the user. Give `support_ref` only when the user asks for help. This skill only reads. An account check is never a step the user must complete before a purchase, and it never grants payment authority.

## Actions

1. **Pick the question.** Use `get_account` for balance, limits, services, or the in-flight purchase. Use `list_transactions` for past spending. If the user wants to buy or fix a payment, hand off to pay-with-envoy.
2. **Read the account.** Call `get_account`. Add `include` only for sections beyond the defaults, for example `["balance", "limits"]`. Report the values Envoy returns. Do not guess a value listed in `unavailable`; say it could not be verified. Limits are informational; they do not promise that a payment will be approved.
3. **Read spending.** Call `list_transactions` with a `from` and `to` date in `YYYY-MM-DD` and a small `limit` of 1–50 when the user names a period. If `next_cursor` is not null and the user wants more, call it again with that `cursor`, the same range, and the same page size.
4. **Answer plainly.** State the figure or the list. Say which period it covers. Say when something is missing. If `active_purchase` is set, tell the user a purchase is in progress, and resume it with pay-with-envoy only if the user asks. If `unavailable` lists `active_purchase`, Envoy could not tell whether a purchase is in progress: say so, and don't start a purchase.

An account question must not start or resume a payment, even when a reply suggests one. Do not request card details, submit a checkout, or retry a payment from this skill.

## Reference pointers

- Tool inputs and outputs: the schemas and descriptions the connected Envoy server publishes for `get_account` and `list_transactions`.
- Defaults and limits: `get_account` returns balance, services and `active_purchase` unless `include` says otherwise, and it never returns card details. `list_transactions` pages with an opaque cursor tied to the connection, date range and page size; `from` must not be later than `to`.
- In-flight purchases: `active_purchase` carries the purchase to follow with `get_purchase_status`, which belongs to pay-with-envoy.
