---
title: "List budget requests"
method: GET
path: "/v1/budget_requests"
tags: ["Budget request"]
---

# List budget requests

`GET /v1/budget_requests`

## Request

- Base URL: `https://api.cardda.com`
- URL: `https://api.cardda.com/v1/budget_requests`
- Auth: HTTP bearer

Budget requests ("solicitudes de presupuesto") of the company, newest first, at most
200 (not paginated).

Admin / `budgets_manage` users see every request of the company, plus the company's
free balance (`company_unreserved_cents`, what an approval of more funds can take) and
each request's `next_period_check`. Any other member sees only their own requests,
with both as `null`.

## Query parameters

- `status` 'pending' | 'approved' | 'rejected' | 'withdrawn' | 'canceled'
- `kind` 'more_funds' | 'new_budget'
- `budget_id` string, uuid

## Parameters

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

## Response `200`

The requests the caller can see.

- object
  - `requests` BudgetRequest[], required
    - `id` string, uuid, required
    - `company_id` string, uuid, required
    - `kind` 'more_funds' | 'new_budget', required: - `more_funds` ("Más fondos"): more money for an existing budget (`budget_id`). - `new_budget` ("Presupuesto nuevo"): a budget that doesn't exist yet; approving it creates the budget and `budget_id` points to it from then on.
    - `status` 'pending' | 'approved' | 'rejected' | 'withdrawn' | 'canceled', required: - `pending`: waiting for an admin. - `approved`: an admin approved it; the money moved (or the budget was created). - `rejected`: an admin rejected it; `resolution_note` says why. - `withdrawn`: whoever asked withdrew it. - `canceled`: the budget closed while it was pending (`resolution_note` is `budget_closed`).
    - `budget_id` string, uuid, nullable: The budget asked about (`more_funds`), or the one created on approval (`new_budget`). `null` for a `new_budget` request not approved.
    - `requested_amount_cents` integer, required: What was asked for.
    - `approved_amount_cents` integer, nullable: What the admin approved (the amount asked for unless changed). `null` until approved.
    - `currency` string, required
    - `period_scope` 'current_period' | 'next_periods' | 'null', nullable: Only for `more_funds` on a recurring budget (`null` otherwise): - `current_period`: the money is for the period in progress. - `next_periods`: raises what each period starts with (`base_amount_cents`) from the next renewal on.
    - `reason` string: Why the requester needs it.
    - `resolution_note` string, nullable: The admin's note when rejecting it. `budget_closed` when it was canceled because its budget closed.
    - `name` string, nullable: Name of the budget asked for (`new_budget` only).
    - `recurrence_unit` 'week' | 'month' | 'year' | 'null', nullable: How often the budget asked for should renew (`new_budget` only). `null` if it shouldn't.
    - `recurrence_every` integer, nullable: How many `recurrence_unit` each period of the budget asked for spans (`new_budget` only).
    - `participant_ids` string[]: Users the requester wants in the new budget (`new_budget` only; empty otherwise).
    - `origin_channel` 'web' | 'whatsapp', required: Where it was asked from.
    - `resolved_at` string, date-time, nullable: When it was approved, rejected, withdrawn or canceled.
    - `created_at` string, date-time, required
    - `requested_by` object, required: Who asked.
      - `id` string
      - `name` string, nullable
      - `email` string
    - `resolved_by` object, nullable: Who approved, rejected or withdrew it. `null` while pending or when canceled.
      - `id` string
      - `name` string, nullable
      - `email` string
    - `budget` object, nullable: The budget it's about (`budget_id`), `null` if there's none.
      - `id` string, uuid
      - `name` string
      - `mode` 'funded' | 'tracking'
      - `recurring` boolean: Whether it renews (`recurrence_unit` set).
      - `closing` boolean: Whether its closing date came.
      - `dissolved` boolean: Whether it's closed.
      - `period_ends_on` string, date, nullable: Scheduled renewal boundary of its period in progress. `null` if it doesn't renew.
      - `base_amount_cents` integer, nullable
      - `allocated_amount_cents` integer
    - `next_period_check` object, nullable: Only for users with `budgets_manage` (`null` for anyone else), on a pending `next_periods` request for a `funded` ("Con saldo") budget: the figures to warn that the company's free balance wouldn't renew the budget with the higher base today. `null` otherwise.
      - `current_base_cents` integer: What each period starts with today.
      - `available_for_base_cents` integer: The most the company's free balance could renew it with today.
  - `company_unreserved_cents` integer, nullable, required: The company's free balance (not reserved by any budget). Only for admin / `budgets_manage` users; `null` for anyone else.

## Other responses

- `401`: Unauthorized - missing or invalid authentication token, or a caller outside the company.

---

[API](https://skmtc.dev/cardda/apis/finance-api.md) - [All operations](https://skmtc.dev/cardda/apis/finance-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cardda/apis/finance-api/revisions/59752c65ea74?raw)
