*API REST › Objetos › Alquileres*

# Presupuesto

> El presupuesto, tal como lo devuelve la API.

Un presupuesto, mostrado como su versión activa. `status` es el ciclo de vida del documento y `operativeStatus` es el estado comercial; confirmar una versión deja las demás como `superseded`. Los presupuestos están acotados a la suscripción que posee la clave. La lectura de detalle, [`GET /api/v1/quotes/{quoteId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/quotes/get-a-quote), añade el nombre del proyecto y el desglose de impuestos. Las líneas se leen con [`GET /api/v1/quotes/{quoteId}/lines`](https://docs.filmo.io/es/rest-api/endpoint-reference/quotes/list-the-lines-of-a-quote).

Esquemas: `QuoteDto`, `QuoteDetailDto`

## Atributos

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador único del presupuesto (contenedor). |
| `quoteNumber` | string | Número de presupuesto legible. |
| `versionNumber` | integer | Número de la versión activa del presupuesto. |
| `status` | string | Estado del ciclo de vida del documento de la versión activa: draft o validated (validado y numerado). `draft`, `validated` |
| `operativeStatus` | string | Estado comercial de la versión activa: pending (a la espera de respuesta), confirmed (aceptada), cancelled (rechazada o cancelada) o superseded (sustituida). `pending`, `confirmed`, `cancelled`, `superseded` |
| `issueDate` | string<date-time> | Fecha de emisión de la versión activa en ISO 8601 con desfase; null si no se ha emitido. |
| `validUntil` | string<date-time> | Fecha de validez del presupuesto en ISO 8601 con desplazamiento; null si no se ha fijado. |
| `startDate` | string<date-time> | Inicio del periodo de alquiler presupuestado en ISO 8601 con desplazamiento. |
| `endDate` | string<date-time> | Fin del periodo de alquiler presupuestado en ISO 8601 con desplazamiento. |
| `currency` | string | Divisa del presupuesto como código ISO 4217 (por ejemplo "EUR"). |
| `contact` | object | Referencia compacta al contacto del presupuesto; null si no hay. |
| `contact.id` | string | Identificador único del contacto. |
| `contact.name` | string | Nombre del contacto. |
| `orderId` | string | Identificador del pedido vinculado; null si no está vinculado. |
| `orderNumber` | string | Número del pedido vinculado; null si no está vinculado. |
| `projectId` | string | Identificador del proyecto vinculado; null si no está vinculado. |
| `subTotal` | string | Subtotal antes de descuentos e impuestos, como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `discountTotal` | string | Total de descuentos como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `taxesPrice` | string | Total de impuestos como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `netPrice` | string | Base imponible (neto antes de impuestos) como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `grossPrice` | string | Total con impuestos, como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `totalPaid` | string | Importe cobrado contra el presupuesto como cadena decimal "1234.50" (ROUND_HALF_UP); null si no consta. |
| `createdAt` | string<date-time> | Fecha de creación del contenedor en ISO 8601 con desplazamiento. |
| `updatedAt` | string<date-time> | Fecha de la última actualización en ISO 8601 con desplazamiento. |
| `projectName` | string | Nombre del proyecto vinculado; null si no está vinculado. |
| `taxBreakdown` | object[] | Desglose de impuestos por tipo; null si no se ha calculado. |
| `taxBreakdown.taxType` | string | Clave del tipo de impuesto (por ejemplo "IVA_21"). |
| `taxBreakdown.label` | string | Etiqueta de impuesto legible. |
| `taxBreakdown.rate` | number | Tipo impositivo aplicado, como porcentaje (por ejemplo 21 para el 21%). |
| `taxBreakdown.baseAmount` | string | Base imponible sobre la que se aplica el impuesto, como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `taxBreakdown.amount` | string | Importe del impuesto como cadena decimal "1234.50" (ROUND_HALF_UP). |

## Valores

| Campo | Valores |
| --- | --- |
| `status` | `draft`, `validated` |
| `operativeStatus` | `pending`, `confirmed`, `cancelled`, `superseded` |

## Ejemplo

*Quote · Generado a partir del esquema*

```json
{
  "id": "id_8f2a1c",
  "quoteNumber": "string",
  "versionNumber": 1,
  "status": "draft",
  "operativeStatus": "pending",
  "issueDate": "2026-09-01T08:00:00Z",
  "validUntil": "2026-09-01T08:00:00Z",
  "startDate": "2026-09-01T08:00:00Z",
  "endDate": "2026-09-01T08:00:00Z",
  "currency": "EUR",
  "contact": {
    "id": "id_8f2a1c",
    "name": "Example"
  },
  "orderId": "string",
  "orderNumber": "string",
  "projectId": "string",
  "subTotal": "1234.50",
  "discountTotal": "1234.50",
  "taxesPrice": "1234.50",
  "netPrice": "1234.50",
  "grossPrice": "1234.50",
  "totalPaid": "1234.50",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z",
  "projectName": "Example",
  "taxBreakdown": [
    {
      "taxType": "1234.50",
      "label": "Example",
      "rate": 1,
      "baseAmount": "1234.50",
      "amount": "1234.50"
    }
  ]
}
```

## Lo devuelven

- [`GET /api/v1/quotes`](https://docs.filmo.io/es/rest-api/endpoint-reference/quotes/list-quotes) — Listar presupuestos
- [`GET /api/v1/quotes/{quoteId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/quotes/get-a-quote) — Obtener un presupuesto

## Lo modifican

- [`PATCH /api/v1/quotes/{quoteId}/status`](https://docs.filmo.io/es/rest-api/endpoint-reference/quotes/change-the-commercial-status-of-a-quote) — Cambiar el estado comercial de un presupuesto

---

URL canónica: https://docs.filmo.io/es/rest-api/objects/quote  
Última actualización: 2026-10-25