Octopi allows holds to be placed on cargo.
A terminal operator can created has many hold types as possible to automatically or manually create holds on cargo.
Holds can be placed on cargo. When a cargo has a hold, it cannot be delivered to the customer (via a gate movement or a cargo stripping) or loaded on a vessel for export.
Code | Description |
---|---|
404 | Not found |
409 | Conflict |
500 | Server crashed for some reason |
This endpoint returns a list of holds that have been placed on the cargo.
curl "https://app.octopi.co/api/v1/cargoes/ID/holds.json" -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Token token=YOURTOKEN"
{ "holds": [ { "lifted": false, "applied_at": null, "lifted_at": null, "lifted_until": null, "lifted_by": null, "hold_type": "DETENTION HOLD", "actions": { "lift": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/lift.json" }, "apply": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/apply.json" }, "index": { "method": "GET", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds.json" } }, "id": 51359, "reference_number": null, "applied_by": null }, { "lifted_at": null, "lifted_until": null, "lifted_by": null, "lifted": false, "applied_at": null, "applied_by": null, "actions": { "lift": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/lift.json" }, "apply": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/apply.json" } }, "hold_type": "GATE MOVE INVOICE FEE", "reference_number": null, "id": 51360 } ] }
Param name | Description |
---|---|
id required |
Validations:
|
Code | Description |
---|---|
404 | Not found |
409 | Conflict |
500 | Server crashed for some reason |
This endpoint can be used to lift a hold from a cargo. If a bill of lading number is provided, it will only lift the hold if the container is manifested on the bill of lading identified by the provided id.
curl "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/lift.json" -X PUT -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Token token=YOURTOKEN" -d '{"hold": { "reference_number": "ADD REFERENCE NUMBER HERE", "lift_until": "2025-10-10", "notes": "ADD LIFTED NOTE HERE"} }'
{ "reference_number": "REF123", "actions": { "lift": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/apply.json" }, "index": { "method": "GET", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds.json" } }, "lifted_by": null, "applied_by": null, "hold_type_id": 13, "hold_type": "CUSTOMS HOLD", "lifted": true, "lifted_at": "2016-12-01T09:46:23.738-05:00", "applied_at": null, "notes": null }
Param name | Description |
---|---|
cargo_id required |
Validations:
|
id required |
Validations:
|
Code | Description |
---|---|
404 | Not found |
409 | Conflict |
500 | Server crashed for some reason |
This endpoint can be used to apply a hold to general cargo.
curl "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_TYPE_ID/apply.json" -X PUT -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Token token=YOURTOKEN"
{ "reference_number": "REF123", "actions": { "lift": { "method": "PUT", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds/HOLD_ID/lift.json" }, "index": { "method": "GET", "url": "https://app.octopi.co/api/v1/cargoes/CARGO_ID/holds.json" } }, "lifted_by": null, "applied_by": null, "hold_type_id": 13, "hold_type": "CUSTOMS HOLD", "lifted": false, "lifted_at": null, "applied_at": "2016-12-01T09:46:23.738-05:00" }
Param name | Description |
---|---|
id required |
Validations:
|
hold_id required |
Validations:
|