Flightcases
Flightcase lifecycle — pack, seal, dispatch, return, and repack barcoded assets.
Flightcases API
Flightcases group barcoded assets into dispatchable units (kits, hybrid kits, transport boxes). The API covers the full pack/seal/dispatch/return lifecycle.
Packing a kit or hybrid-fixed flightcase holds its contents from individual availability via flightcase demand; unpacking releases it.
Endpoints
| Method | URL | Description |
|---|---|---|
| GET | /api/v1/flightcases |
List flightcases |
| POST | /api/v1/flightcases |
Create flightcase |
| POST | /api/v1/flightcases/temporary |
Create temporary flightcase |
| GET | /api/v1/flightcases/{flightcase} |
Show flightcase with packed contents |
| PATCH | /api/v1/flightcases/{flightcase} |
Update flightcase metadata |
| GET | /api/v1/flightcases/{flightcase}/compliance |
Compliance manifest (sealed) |
| POST | /api/v1/flightcases/{flightcase}/pack |
Pack barcoded item |
| POST | /api/v1/flightcases/{flightcase}/unpack |
Unpack barcoded item |
| POST | /api/v1/flightcases/{flightcase}/transfer |
Transfer packed items between flightcases |
| POST | /api/v1/flightcases/{flightcase}/seal |
Seal flightcase |
| POST | /api/v1/flightcases/{flightcase}/unseal |
Unseal flightcase |
| POST | /api/v1/flightcases/{flightcase}/dissolve |
Dissolve flightcase |
| POST | /api/v1/flightcases/{flightcase}/dispatch |
Dispatch kit to rental |
| POST | /api/v1/flightcases/{flightcase}/return |
Return kit from rental |
| POST | /api/v1/flightcases/repack/start |
Start repack session |
| POST | /api/v1/flightcases/{flightcase}/repack |
Repack single item |
| POST | /api/v1/flightcases/{flightcase}/verify-checkin |
Verify check-in scan |
| POST | /api/v1/flightcases/{flightcase}/flag-return-damage |
Flag per-asset damage on kit return (raises a repair through the shared origin seam; conflict policy rejects still-packed components) |
CatalogueItem flightcase templates: GET/PUT /api/v1/catalogue_items/{catalogue_item}/flightcase_template.
Authentication
Requires flightcases:read (GET) or flightcases:write (POST/PATCH and mutating lifecycle endpoints: dispatch, return, repack, verify-checkin, flag-return-damage) with matching flightcases.view, flightcases.pack, flightcases.seal, etc. permissions.
List flightcases
GET /api/v1/flightcases
Ransack filters: name, barcode, status, scan_mode, is_temporary, catalogue_item_id, warehouse_id, rental_id, created_at, updated_at.
Includes: ?include=catalogue item,warehouse,active_items
Lifecycle notes
| Action | Constraint |
|---|---|
| Pack / unpack | Flightcase must be open |
| Seal | Requires packed contents; produces compliance manifest |
| Dissolve | Warn-and-resolve nested packing; may transfer items |
| Dispatch / return | Kit mode — ties flightcase to rental |
| Repack | Post-return scan workflow |
Transport flightcases may use dissolve-on-dispatch (configured on catalogue item template) — see Flightcases & Kits platform doc.
Pack item
POST /api/v1/flightcases/{flightcase}/pack
| Field | Type | Required | Description |
|---|---|---|---|
serialised_item_id |
int | Yes | barcoded assets level to pack |
position |
string | No | Slot/position label |
notes |
string | No | Free-text note |
Returns 201 with container_item. Rejected with 422 when flightcase is not open, item is at wrong warehouse, already packed, or committed to another rental.
Unpack item
POST /api/v1/flightcases/{flightcase}/unpack
Body: { "serialised_item_id": 88 }. Returns 200 with closed membership row.
Webhooks
flightcase.created, flightcase.item.packed, flightcase.item.unpacked, flightcase.sealed, flightcase.unsealed, flightcase.dissolved, flightcase.dispatched, flightcase.returned, flightcase.repack.started, flightcase.repack.item — see Webhooks.