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:
|