---
title: "List balance groups"
method: GET
path: "/v1/budgets"
tags: ["Budget"]
---

# List balance groups

`GET /v1/budgets`

Returns the company's active balance groups ("grupos de saldo" / budgets), each with
its computed totals (`committable_cents`, `available_cents`, `consumed_balance_cents`),
its embedded `manager`, and its bound `vendor_cards`.

## Access
- Admin / finance users (permission `budgets_manage`) see every group in the company.
- Other users only see the groups they manage (`manager_id` == their user id).

The company is taken from the `company-id` header. This endpoint is not paginated —
it returns all active groups in scope.

## Parameters

- `#/paths/~1v1~1bills/get/parameters/0` — unresolved $ref

## Response `200`

Active balance groups in scope.

- Budget[]
  - `id` string, uuid, required
  - `company_id` string, uuid, required
  - `name` string, required
  - `description` string, nullable
  - `currency` string, required
  - `allocated_amount_cents` integer, required — Funds reserved into this group's pool from the company's global pool.
  - `manager_id` string, nullable — User id of the group's manager ("Encargado").
  - `committable_cents` integer — Manager-facing "what's left to commit/spend": nets out funds already loaded onto prepaid (PLH) cards, so it matches what new charges and card loads will actually allow. Added via serializer method.
  - `available_cents` integer — Company-reservation view of what's left in the pool (`allocated + consumed_balance`). Added via serializer method.
  - `consumed_balance_cents` integer — Net amount consumed from the pool (<= 0 for net spend), summed from the balance-affecting ledger. Added via serializer method.
  - `manager` object, nullable — The assigned manager, embedded (only id, name, email).
    - `id` string
    - `name` string
    - `email` string, email
  - `vendor_cards` object[] — Cards bound to this group, embedded with per-card funding data.
    - `id` string, uuid
    - `name` string
    - `last4` string
    - `user_id` string
    - `spending_control_strategy` 'allocation_based' | 'limit_based'
    - `limit_currency` string
    - `allocated_amount_cents` integer
    - `limit_amount_preference_cents` integer, nullable
    - `limit_interval_preference` string, nullable
    - `recurring_allocation_amount_cents` integer, nullable
    - `allocation_interval_preference` string, nullable
  - `dissolved_at` string, date-time, nullable — When the group was soft-deleted ("deshacer"). `null` for active groups; a timestamp for dissolved ones. Active listings only return active groups, but the field is present on the record.
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — Unauthorized - missing or invalid authentication token.

---

[API](https://skmtc.dev/cardda/apis/banking-api.md) · [All operations](https://skmtc.dev/cardda/apis/banking-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cardda/banking-api/revisions/ff1aeb3fda8b/schema)
