Incidents

Open an incident

Records broken, lost or damaged material.

POST
/api/v1/incidents

Request examples

curl https://app.filmo.io/api/v1/incidents \
  --request POST \
  --header "Authorization: Bearer $FILMO_API_KEY" \
  --header "Idempotency-Key: $(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid)" \
  --header 'Content-Type: application/json' \
  --data '{
  "title": "Montura dañada en la devolución",
  "type": "damage",
  "scope": "serializedItem",
  "priority": "high",
  "blocksAvailability": true,
  "itemId": "itm_9f3a2b",
  "serializedItemId": "ser_00187",
  "orderId": "ord_00421",
  "description": "La montura llega con holgura; no sujeta el objetivo.",
  "dueDate": "2026-09-20T12:00:00+02:00"
}'
{
  "data": {
    "id": "incident_9f3a2b",
    "identifier": "Example identifier",
    "title": "Example title",
    "description": "Example text.",
    "type": "Example type",
    "scope": "item",
    "status": "Example status",
    "priority": "Example priority",
    "severity": "Example severity",
    "blocksAvailability": true,
    "affectedQuantity": 1,
    "itemId": "item_9f3a2b",
    "serializedItemId": "serialized_item_9f3a2b",
    "spaceId": "space_9f3a2b",
    "vehicleId": "vehicle_9f3a2b",
    "orderId": "order_9f3a2b",
    "projectId": "project_9f3a2b",
    "dueDate": "2026-09-01T08:00:00.000Z",
    "commentCount": 1,
    "createdAt": "2026-09-01T08:00:00.000Z",
    "updatedAt": "2026-09-01T08:00:00.000Z"
  }
}

Generated from the schema

With blocksAvailability: true the material leaves the available pool while the incident remains open; if the item is tracked by quantity and you do not indicate a specific physical unit, affectedQuantity becomes required. The repair cost is NOT part of the public contract. Returns the created incident.

Authorizations

Bearer API key with the scope below. incidents:write

Headers

Idempotency-Keystring

Unique identifier of the request, chosen by the client (a UUID works). Between 1 and 255 characters: an empty header is rejected with 400 validation_error, because the client would believe itself protected. Repeating the same key with the SAME body within 24 h returns the stored response without executing again, with the Idempotent-Replay: true header. With a DIFFERENT body it returns 422. It is the safe way to retry after a network timeout.

Limits: min length 1, max length 255

Example:"9f1c2f4e-3a5b-4f6d-8e7a-0b1c2d3e4f5a"

If-Matchstring

Optimistic locking: the ETag you read from the resource (or *). If the resource changed since, the write is rejected with 412 precondition_failed before doing anything; read it again and retry. Without the header the write always proceeds.

Example:"\"3sT3d9pBvZq4h2N0w8x1YkLmQ7c\""

Body

application/json

Body schema: IncidentCreateBody

titlestringRequired

Short title, the one shown in lists and cards.

Limits: min length 1

typestringRequired

Nature of the incident.

Available options: damage, loss, malfunction, cosmetic, theft, custom

scopestringRequired

What the incident affects.

Available options: item, serializedItem, space, kit, vehicle, custom

statusstring

Initial status. Defaults to "draft".

Available options: draft, open, waiting, repairing, complete, lost

prioritystring

Priority. Defaults to "none".

Available options: urgent, high, medium, low, none

severitystring

Severity. Defaults to "low".

Available options: low, high

descriptionstring

Description of what happened.

blocksAvailabilityboolean

true removes the material from the available pool while the incident is open.

affectedQuantityinteger

Affected units. Required when blocking bulk stock.

Limits: max 10000, > 0

itemIdstring

Affected item.

serializedItemIdstring

Specific physical unit affected.

variantIdstring

Affected item variant.

spaceIdstring

Affected space.

vehicleIdstring

Affected vehicle.

orderIdstring

Order in which it was detected.

projectIdstring

Associated project.

contactIdsstring[]

Involved contacts (supplier, insurer, client) so they can see it.

assigneeStaffIdsstring[]

Staff assigned to resolve it.

subscriberIdsstring[]

Deprecated: accepted for compatibility and ignored. Incidents no longer keep a subscriber list.

labelsstring[]

Free-form labels of the incident.

imagesstring[]

URLs of photos of the damage.

dueDatestring<date-time>

Target resolution date, in ISO 8601 with offset.

reminderEnabledboolean

Enables the internal reminder.

reminderDatestring<date-time>

Reminder date, in ISO 8601 with offset.

parentIncidentIdstring

Incident of which this one is a child.

Response

application/json

Successful response.

Response schema: IncidentDto

Envelope: IncidentResponse. meta.warnings is present only when the operation is deprecated.

Headers: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · ETag · Idempotent-Replay

dataobject

Broken, lost or malfunctioning material, with its repair status.

Show child attributes
data.idstring

Unique incident identifier.

data.identifierstring

Human-readable incident number.

data.titlestring

Short title of the incident.

data.descriptionstring | null

Description; null if it has none.

data.typestring

Nature: damage, loss, malfunction, cosmetic, theft or custom.

data.scopestring

What it affects: item, serializedItem, space, kit, vehicle or custom.

Available options: item, serializedItem, space, kit, vehicle, custom

data.statusstring

Lifecycle status: draft, open, waiting, repairing, complete or lost.

data.prioritystring

Priority: urgent, high, medium, low or none.

data.severitystring

Declared severity.

data.blocksAvailabilityboolean

true when the incident removes the material from the available pool.

data.affectedQuantityinteger | null

Affected units in bulk stock; null when not applicable.

data.itemIdstring | null

Affected item; null if not applicable.

data.serializedItemIdstring | null

Affected physical unit; null if not applicable.

data.spaceIdstring | null

Affected space; null if not applicable.

data.vehicleIdstring | null

Affected vehicle; null if not applicable.

data.orderIdstring | null

Order in which it was detected; null if not applicable.

data.projectIdstring | null

Associated project; null if not applicable.

data.dueDatestring<date-time> | null

Target resolution date in ISO 8601 UTC; null if it has none.

data.commentCountinteger

Comments the incident has.

data.createdAtstring<date-time>

Creation date in ISO 8601 UTC.

data.updatedAtstring<date-time>

Last modification date in ISO 8601 UTC.

metaobject

Additional information about the response.

Show child attributes
meta.warningsobject[]

Lifecycle warnings; present only when the operation is deprecated.

Show child attributes
meta.warnings.codestring

Stable warning code.

Available options: deprecated

meta.warnings.messagestring

For people: what is deprecated, until when, and what to use.

meta.warnings.sunsetstring

Day (YYYY-MM-DD) the operation stops being served.

meta.warnings.replacementstring | null

operationId of the operation to use instead, or null if there is none.

Errors

StatusCodesMeaning
400validation_errorMalformed query or body. errors[] lists every offending field with its stable code.
402addon_requiredThe account plan does not include the add-on this operation needs; requiredAddon names it.
404not_foundIt does not exist or is outside the scope of the API key.
409conflictThe current state of the resource prevents the operation, a request with that Idempotency-Key is already in progress, or another conditional write (If-Match) held the resource for more than five seconds. errors[0].code says which: in_progress and lock_timeout are solved by retrying; invalid_state is not, because the state of the resource forbids the operation.
412precondition_failedThe If-Match entity tag does not match the current representation. Read the resource again and retry.
422idempotency_key_reusedThe same key was used before with a different body. Change the key.

401, 403, 429, 500 can be returned by any operation. Errors

Deprecation

This operation is not deprecated. Deprecations are announced with a Deprecation header and a sunset date. Versioning policy

  • Operations

    Incident

    Broken, lost or malfunctioning material, with its repair status.