*API REST › Objetos › Alquileres*

# Pedido

> El pedido, tal como lo devuelve la API.

Un pedido de alquiler: su contacto, proyecto, fechas, totales y estado. `status` lleva el estado en bruto, mientras que el filtro `status` de la lista usa grupos operativos (consulta los estados de la API). Leer un pedido por id usa el aislamiento heredado de la cuenta principal, pero la lista está acotada a la suscripción que posee la clave. [`externalReference`](https://docs.filmo.io/es/rest-api/objects/order#response-externalReference) es legible pero no escribible a través de la API. Los pedidos archivados son invisibles: ninguna lista los devuelve y su GET responde 404. Restaura uno con [`PUT /api/v1/orders/{orderId}/archive`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/archive-or-restore-an-order) y `archived: false`. Las líneas se leen con [`GET /api/v1/orders/{orderId}/lines`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/list-the-lines-of-an-order). La lectura de detalle, [`GET /api/v1/orders/{orderId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/get-an-order), añade las direcciones de facturación y de envío, la persona de contacto y los presupuestos, facturas y proformas del pedido.

Esquemas: `OrderDto`, `OrderDetailDto`

## Atributos

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador único del pedido. |
| `orderNumber` | string | Número de pedido legible. |
| `externalReference` | string | Referencia externa del pedido (por ejemplo, del sistema del cliente); null si no consta. |
| `status` | string | Estado bruto del pedido tal como se almacena en la base de datos (12 valores): draft, reserved, prepared_partially, prepared, picked_up_partially, picked_up, returned_partially, returned, checked_in_partially, checked_in, archived o cancelled. `archived` forma parte del conjunto almacenado, pero un pedido archivado no es visible para la API, así que no lo observarás. `draft`, `reserved`, `prepared_partially`, `prepared`, `picked_up_partially`, `picked_up`, `returned_partially`, `returned`, `checked_in_partially`, `checked_in`, `archived`, `cancelled` |
| `startDate` | string<date-time> | Inicio del periodo de alquiler en ISO 8601 con desplazamiento. |
| `endDate` | string<date-time> | Fin del periodo de alquiler en ISO 8601 con desplazamiento. |
| `rentalDays` | number | Número de días de alquiler facturables; null si no se ha calculado. |
| `projectId` | string | Identificador del proyecto al que pertenece el pedido; null si no está vinculado. |
| `projectName` | string | Nombre del proyecto al que pertenece el pedido; null si no está vinculado. |
| `contact` | object | Referencia compacta al contacto del pedido; null si no hay. |
| `contact.id` | string | Identificador único del contacto. |
| `contact.name` | string | Nombre del contacto. |
| `itemsCount` | integer | Número de artículos del pedido. |
| `subTotalPrice` | 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); null si no hay descuento. |
| `insuranceTotal` | string | Total del seguro como cadena decimal "1234.50" (ROUND_HALF_UP). |
| `depositTotal` | string | Total de fianzas 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). |
| `tags` | object[] | Etiquetas adjuntas al pedido, con su identificador y nombre. |
| `tags.id` | string | Identificador único de la etiqueta. |
| `tags.name` | string | Nombre de la etiqueta. |
| `customFields` | object<string, any> | Valores de los campos personalizados por identificador de campo personalizado; las definiciones están en `/api/v1/custom-fields`. |
| `source` | string | Origen desde el que se creó el pedido (por ejemplo web, mobile, admin); null si no consta. |
| `createdAt` | string<date-time> | Fecha de creación en ISO 8601 con desplazamiento. |
| `updatedAt` | string<date-time> | Fecha de la última actualización en ISO 8601 con desplazamiento. |
| `billingAddress` | object | Dirección de facturación del pedido; null si no hay. |
| `billingAddress.label` | string | Etiqueta descriptiva de la dirección; null si no consta. |
| `billingAddress.addressLine1` | string | Primera línea de la dirección; null si no consta. |
| `billingAddress.addressLine2` | string | Segunda línea de la dirección; null si no consta. |
| `billingAddress.city` | string | Ciudad; null si no consta. |
| `billingAddress.province` | string | Provincia o región; null si no se ha registrado. |
| `billingAddress.postcode` | string | Código postal; null si no se ha registrado. |
| `billingAddress.country` | string | País; null si no consta. |
| `shippingAddress` | object | Dirección de envío del pedido; null si no hay. |
| `shippingAddress.label` | string | Etiqueta descriptiva de la dirección; null si no consta. |
| `shippingAddress.addressLine1` | string | Primera línea de la dirección; null si no consta. |
| `shippingAddress.addressLine2` | string | Segunda línea de la dirección; null si no consta. |
| `shippingAddress.city` | string | Ciudad; null si no consta. |
| `shippingAddress.province` | string | Provincia o región; null si no se ha registrado. |
| `shippingAddress.postcode` | string | Código postal; null si no se ha registrado. |
| `shippingAddress.country` | string | País; null si no consta. |
| `contactPerson` | object | Persona de contacto vinculada al pedido; null si no hay ninguna. |
| `contactPerson.id` | string | Identificador único del contacto. |
| `contactPerson.name` | string | Nombre del contacto. |
| `quotes` | object[] | Referencias informativas a los presupuestos generados a partir del pedido. |
| `quotes.id` | string | Identificador único del documento referenciado. |
| `quotes.number` | string | Número del documento; null hasta que se numera. |
| `quotes.status` | string | Estado del documento en el momento en que se escribió la referencia; null si no consta. Informativo: puede estar desactualizado. |
| `invoices` | object[] | Referencias informativas a las facturas generadas a partir del pedido. |
| `invoices.id` | string | Identificador único del documento referenciado. |
| `invoices.number` | string | Número del documento; null hasta que se numera. |
| `invoices.status` | string | Estado del documento en el momento en que se escribió la referencia; null si no consta. Informativo: puede estar desactualizado. |
| `proformas` | object[] | Referencias informativas a las proformas generadas a partir del pedido. |
| `proformas.id` | string | Identificador único del documento referenciado. |
| `proformas.number` | string | Número del documento; null hasta que se numera. |
| `proformas.status` | string | Estado del documento en el momento en que se escribió la referencia; null si no consta. Informativo: puede estar desactualizado. |

## Valores

| Campo | Valores |
| --- | --- |
| `status` | `draft`, `reserved`, `prepared_partially`, `prepared`, `picked_up_partially`, `picked_up`, `returned_partially`, `returned`, `checked_in_partially`, `checked_in`, `archived`, `cancelled` |

## Ejemplo

*Order · Generado a partir del esquema*

```json
{
  "id": "id_8f2a1c",
  "orderNumber": "string",
  "externalReference": "string",
  "status": "draft",
  "startDate": "2026-09-01T08:00:00Z",
  "endDate": "2026-09-01T08:00:00Z",
  "rentalDays": 1,
  "projectId": "string",
  "projectName": "Example",
  "contact": {
    "id": "id_8f2a1c",
    "name": "Example"
  },
  "itemsCount": 1,
  "subTotalPrice": "1234.50",
  "discountTotal": "1234.50",
  "insuranceTotal": "1234.50",
  "depositTotal": "1234.50",
  "taxesPrice": "1234.50",
  "netPrice": "1234.50",
  "grossPrice": "1234.50",
  "tags": [
    {
      "id": "id_8f2a1c",
      "name": "Example"
    }
  ],
  "customFields": {
    "key": "string"
  },
  "source": "string",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z",
  "billingAddress": {
    "label": "Example",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "province": "string",
    "postcode": "string",
    "country": "ES"
  },
  "shippingAddress": {
    "label": "Example",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "province": "string",
    "postcode": "string",
    "country": "ES"
  },
  "contactPerson": {
    "id": "id_8f2a1c",
    "name": "Example"
  },
  "quotes": [
    {
      "id": "id_8f2a1c",
      "number": "string",
      "status": "string"
    }
  ],
  "invoices": [
    {
      "id": "id_8f2a1c",
      "number": "string",
      "status": "string"
    }
  ],
  "proformas": [
    {
      "id": "id_8f2a1c",
      "number": "string",
      "status": "string"
    }
  ]
}
```

## Lo devuelven

- [`GET /api/v1/orders`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/list-orders) — Listar pedidos
- [`GET /api/v1/orders/{orderId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/get-an-order) — Obtener un pedido

## Lo modifican

- [`POST /api/v1/orders`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/create-an-order) — Crear un pedido
- [`PATCH /api/v1/orders/{orderId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/update-the-header-of-an-order) — Actualizar la cabecera de un pedido
- [`POST /api/v1/orders/{orderId}/cancel`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/cancel-an-order) — Cancelar un pedido
- [`POST /api/v1/orders/{orderId}/reserve`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/reserve-an-order) — Reservar un pedido
- [`POST /api/v1/orders/{orderId}/unreserve`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/unreserve-an-order) — Anula la reserva de un pedido

---

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