get_account

Read account sections at task start or when the purchase reference is lost.

POST https://api.envoy.money/tools/get_account

Read account sections at task start or when the purchase reference is lost. Defaults to balance, services, active_purchase and held_purchases (money in open agent purchases, separate from held by the bank). Add profile for the user's name, verified mobile and email, or addresses for saved delivery addresses to fill checkout forms. Never returns card details.

TitleServiceRead onlyDestructiveIdempotentExternal sites
Read accountsharedtruefalsetruefalse

Send a Central Auth bearer with agent scope. A key-bound connection also sends Envoy-Installation-Proof over this exact request. JSON bodies are limited to 64 KB; a larger body returns HTTP 413 with INVALID_INPUT.

Input

FieldRequiredTypeDescription and rules
includeNoarray of "balance" | "limits" | "services" | "active_purchase" | "agent" | "profile" | "addresses" | "held_purchases"Sections to read. A single string is also accepted. unique items; default ["balance","services","active_purchase","held_purchases"]

Unknown fields are rejected. The exact input schema is on the schemas page.

Synthetic request

{}

Success data

Every reply uses the shared envelope: ok, the purchase, next, user_action and error. Follow next; outputs may gain fields, so ignore ones you do not recognize.

This tool returns its payload in data:

Field in dataRequiredTypeDescription and rules
accountYesobjectSelected account sections. Balance and limit fields reuse the verified v1 read adapter; services lists registry identifiers. Absent sections were not requested.
account.currencyNostring or nullAccount currency.
account.balanceNoobject or null—
account.heldNoobject or null—
account.spendableNoobject or null—
account.held_purchasesNoobject or nullOpen agent purchase card money, separate from the account held figure.
account.limits_reservedNo"not_reserved"Limits are informational, not reserved or a promise of payment approval.
account.unavailableNoarray of "balance" | "holds" | "spendable" | "currency" | "limits" | "profile" | "addresses" | "active_purchase"—
account.profileNoobjectContact details for delivery and checkout forms. A null value has no source.
account.addressesNoarray of objectSaved delivery addresses from the Envoy app, default first. Complete list: a partial list is reported unavailable.
account.limitsNoarray of object—
account.servicesNoarray of "purchase"unique items
account.active_purchaseNoobject or nullV2.1 snapshot. Envelope validation enforces state invariants; the adapter separately enforces ownership and authoritative money evidence.
account.agentNoobject—

Synthetic result

Example synthetic-compatible-payload (synthetic data):

{
  "ok": true,
  "contract": "envoy@2026-10",
  "tool": "get_account",
  "request_id": "req_synthetic",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "server_time": "2026-09-29T12:00:00Z",
  "replayed": false,
  "purchase": null,
  "data": {
    "account": {
      "currency": "INR",
      "balance": {
        "minor": 500000,
        "currency": "INR",
        "display": "₹5,000.00"
      },
      "held": {
        "minor": 0,
        "currency": "INR",
        "display": "₹0.00"
      },
      "spendable": {
        "minor": 500000,
        "currency": "INR",
        "display": "₹5,000.00"
      },
      "services": [
        "purchase"
      ],
      "active_purchase": null,
      "unavailable": []
    }
  },
  "next": {
    "action": "continue",
    "tool": null,
    "args": null,
    "instruction": "Envoy needs nothing more. Carry on with the user's task.",
    "after_seconds": null,
    "by": null
  },
  "user_action": null,
  "follow_ups": [],
  "error": null
}

Errors

A failure has ok: false, changes nothing, and carries error plus one next. Branch on error.code and next, not on the HTTP status. The contract declares every code below for every tool; which one a call returns depends on the request and the purchase state.

CodeHTTP statusMeaningWhat the agent does
INVALID_INPUT400Fix the supplied input.Fix every field listed in error.fields, then call the same tool once more.
UNAUTHENTICATED401Reconnect through Central Auth.Ask the user to reconnect Envoy, then retry this call.
NOT_ALLOWED403The operation is not allowed.This connection may not do that. Tell the user; do not retry.
SERVICE_NOT_ENABLED403The service is not enabled.This Envoy service is not enabled for the user. Tell the user; do not retry.
NOT_FOUND404Purchase absent or owned by another user.No purchase matches that reference. Check the purchase id from this task; do not start a new purchase to recover.
IDEMPOTENCY_CONFLICT409The same key has different input.Retry with the original inputs unchanged, or use a new idempotency_key only for a genuinely new purchase.
ACTIVE_PURCHASE_EXISTS409An active purchase already exists.Another purchase is in progress. Show the user the user_action message and stop this attempt.
STATE_CONFLICT409The operation conflicts with the current state.This conflicts with the current state. Tell the user; do not retry.
NO_RAIL422No rail can serve this purchase; nothing was created.Envoy cannot pay this purchase. Tell the user why using error.message; do not retry or split it.
RATE_LIMITED429Wait before retrying.Wait next.after_seconds, then retry the same call unchanged.
UNAVAILABLE503The service is unavailable; follow retryable and next.Wait next.after_seconds, then retry the same call unchanged; never pay elsewhere meanwhile.
CLIENT_UPDATE_REQUIRED426Update the client.This client is too old. Tell the user to update it.

Downloads

OpenAPI · MCP catalog · Synthetic examples · Schemas

On this page