Disponibilidad

Comprobar la disponibilidad de artículos

Comprueba la disponibilidad de un lote de artículos (1-100) en un rango de fechas común, cada uno con la cantidad que piensas reservar (1 por defecto).

POST
/api/v1/availability/check

Ejemplos de petición

curl https://app.filmo.io/api/v1/availability/check \
  --request POST \
  --header "Authorization: Bearer $FILMO_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "items": [
    {
      "itemId": "itm_9f3a2b",
      "variantId": "var_rojo",
      "transactionType": "rental",
      "quantity": 4
    },
    {
      "itemId": "itm_camara_a7"
    }
  ],
  "startDate": "2026-09-01T08:00:00+02:00",
  "endDate": "2026-09-05T20:00:00+02:00"
}'
{
  "data": [
    {
      "itemId": "item_9f3a2b",
      "variantId": "variant_9f3a2b",
      "itemName": "Example item name",
      "quantity": 1,
      "available": true,
      "status": "ok",
      "totalStock": 1,
      "reserved": 1,
      "minRemaining": 1,
      "shortfall": 1,
      "temporaryAvailable": 1,
      "conflictingPeriods": [
        "Example conflicting periods"
      ],
      "commitments": [
        {
          "orderId": "order_9f3a2b",
          "orderNumber": "2026-0001",
          "quantity": 1,
          "startDate": "2026-09-01T08:00:00.000Z",
          "endDate": "2026-09-01T08:00:00.000Z"
        }
      ],
      "checkedAt": "2026-09-01T08:00:00.000Z"
    }
  ]
}

Generado a partir del esquema

Consulta idempotente (POST por el cuerpo estructurado). Comparte la cuota de disponibilidad de 30 req/min. Una entrada por artículo solicitado, en el orden de la petición: su disponibilidad (available, shortfall, conflictingPeriods para esa cantidad, y commitments: los pedidos que retienen unidades de él en la ventana, con su número, cantidad máxima y fechas) o un error por elemento cuando el artículo no existe en la cuenta.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. availability:read

Cuerpo

application/json

Esquema del cuerpo: AvailabilityCheckBody

itemsobject[]Obligatorio

Lote de artículos que comprobar (entre 1 y 100).

Límites: mín. 1 elementos, máx. 100 elementos

Mostrar atributos hijos
items.itemIdstringObligatorio

Identificador del artículo que se comprueba. Obligatorio.

Límites: longitud mín. 1, longitud máx. 100

items.variantIdstring

Identificador de la variante concreta que se comprueba; omítelo para el artículo base.

Límites: longitud mín. 1, longitud máx. 100

items.transactionTypestring

Tipo de transacción que comprobar: rental o sale. Por defecto, rental.

Opciones disponibles: rental, sale

items.quantityinteger

Unidades que piensas reservar. Determina available, shortfall, status y conflictingPeriods. Por defecto es 1.

Límites: mín. 1, máx. 100000

startDatestring<date-time>Obligatorio

Inicio del rango a comprobar (ISO 8601 con desplazamiento), compartido por todo el lote.

endDatestring<date-time>Obligatorio

Fin del rango a comprobar (ISO 8601 con desplazamiento), compartido por todo el lote; debe ser posterior a startDate.

Respuesta

application/json

Respuesta correcta.

Esquema de la respuesta: AvailabilityCheckEntryDto

Sobre: AvailabilityCheckEntryItems. meta.warnings solo aparece cuando la operación está obsoleta.

Cabeceras: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset

dataobject[]

Uno de 1/2: AvailabilityResult
data.itemIdstring

Identificador del artículo comprobado.

data.variantIdstring | null

Identificador de la variante comprobada; null si se comprobó el artículo base.

data.itemNamestring

Nombre del artículo comprobado.

data.quantityinteger

Unidades solicitadas para este artículo (1 si la petición no lo indicaba).

data.availableboolean

true si minRemaining cubre quantity en todos los puntos de la ventana consultada.

data.statusstring

ok (la cantidad solicitada está disponible), partial (hay algunas unidades disponibles, menos de las solicitadas) o none (no hay unidades disponibles).

Opciones disponibles: ok, partial, none

data.totalStocknumber

Stock total del artículo.

data.reservednumber

Unidades reservadas que se solapan con la ventana consultada.

data.minRemainingnumber

Mínimo disponible en cualquier punto de la ventana consultada.

data.shortfallinteger

Unidades que faltan para servir quantity (0 cuando hay disponibilidad).

data.temporaryAvailablenumber | null

Disponibilidad temporal adicional (p. ej., stock prestado o temporal); null si no aplica.

data.conflictingPeriodsstring[]

Días laborables (YYYY-MM-DD, en la zona horaria de la cuenta) dentro de la ventana en los que el stock no cubre quantity. Vacío cuando hay disponibilidad.

data.commitmentsobject[]

Pedidos que consumen stock del artículo dentro de la ventana (las líneas que hay detrás de reserved), los más próximos primero. Vacío cuando no hay nada reservado.

Mostrar atributos hijos
data.commitments.orderIdstring

Pedido que retiene unidades del artículo dentro de la ventana.

data.commitments.orderNumberstring | null

Número de ese pedido; null si aún no tiene.

data.commitments.quantitynumber

Máximo de unidades que el pedido retiene a la vez dentro de la ventana.

data.commitments.startDatestring<date-time>

Inicio del periodo de sus líneas, en ISO 8601 UTC (sin recortar a la ventana).

data.commitments.endDatestring<date-time>

Fin del periodo de sus líneas, en ISO 8601 UTC (sin recortar a la ventana).

data.checkedAtstring<date-time>

Momento en que se realizó la comprobación, en ISO 8601 con desplazamiento.

Uno de 2/2: AvailabilityItemErrorEntry
data.itemIdstring

Identificador que pidió la petición.

data.variantIdstring | null

Variante que pidió la petición; null si ninguna.

data.errorobject

Por qué el artículo no tiene resultado.

Mostrar atributos hijos
data.error.codestring

El artículo no existe en la cuenta.

Opciones disponibles: not_found

data.error.messagestring

Explicación legible.

metaobject

Información adicional sobre la respuesta.

Mostrar atributos hijos
meta.warningsobject[]

Avisos del ciclo de vida; solo aparecen cuando la operación está obsoleta.

Mostrar atributos hijos
meta.warnings.codestring

Código de aviso estable.

Opciones disponibles: deprecated

meta.warnings.messagestring

Para personas: qué está obsoleto, hasta cuándo y qué usar.

meta.warnings.sunsetstring

Día (YYYY-MM-DD) en que la operación deja de estar disponible.

meta.warnings.replacementstring | null

operationId de la operación que hay que usar en su lugar, o null si no hay ninguna.

Errores

EstadoCódigosSignificado
400validation_errorConsulta o cuerpo mal formados. errors[] enumera cada campo erróneo con su código estable.
404not_foundNo existe o queda fuera del alcance de la clave de API.
409conflictEl estado actual del recurso impide la operación, ya hay en curso una petición con esa Idempotency-Key, u otra escritura condicional (If-Match) retuvo el recurso durante más de cinco segundos. errors[0].code indica cuál: in_progress y lock_timeout se resuelven reintentando; invalid_state no, porque el estado del recurso prohíbe la operación.

401, 403, 429, 500 los puede devolver cualquier operación. Errores

Obsolescencia

Esta operación no está obsoleta. Las obsolescencias se anuncian con la cabecera Deprecation y una fecha de retirada. Política de versiones