Skip to main content

POST /v1/orders/{id}/status

After LMN’s responsibility ends at vessel departure (Bill of Lading issued), only the partner can confirm what happens next. This endpoint accepts the two partner-owned status transitions: in_transit → customs and customs → delivered. Sandbox follows the same permission model. Use POST /v1/orders/{id}/sandbox-status when you need to simulate LMN-owned lifecycle states for testing.
The legacy fulfillment_detail field has been removed. Send status instead.

Allowed partner-driven transitions

LMN-owned statuses (secondary_inspection_in_progress, secondary_inspection_ready, acquiring, secured, export_processing, in_transit) cannot be set by the partner; attempting them returns 403 invalid_status_transition with details.reason: "partner_not_authorized". Out-of-sequence partner-owned transitions (e.g., delivered from placed) return 409 invalid_status_transition with details.reason: "out_of_sequence".

POST /v1/orders/{id}/sandbox-status

Use this sandbox-only endpoint when you need to simulate LMN-driven lifecycle changes and test webhook delivery. It is available only on sandbox hosts with sandbox API keys. Unlike POST /v1/orders/{id}/status, this endpoint enqueues webhook events:

Sandbox lifecycle statuses

Inspection is optional: placed → acquiring directly is valid (skip inspection); placed → secondary_inspection_in_progress → secondary_inspection_ready → acquiring is the inspected path. Inspection failure resolves to cancelled (secondary_inspection_failed), never failed.

QA cases

Response

Use GET /v1/orders/{id}/events after simulation to inspect delivery status, attempts, response codes, and payloads.

Errors

SLA expectation

If a customs order doesn’t receive a delivered push within 90 days, LMN’s ops sends a daily digest reminder + email to the partner contact. Document your handoff process to make sure the push happens.