Skip to main content

Error response shape

All non-2xx responses share this envelope:
{
  "error": {
    "code": "past_order_cutoff",
    "message": "The order window for this auction closed at 2026-04-19T00:00:00+09:00.",
    "request_id": "req_8829374",
    "details": {
      "cutoff_at": "2026-04-19T00:00:00+09:00",
      "now": "2026-04-19T02:30:00+09:00"
    }
  }
}
Branch on error.code only. error.message is human-readable English and may evolve. details is structured supplementary info — fields vary per code. request_id is also returned as the X-Request-Id response header. Include it in any support request.

HTTP → code matrix

HTTPerror.code values
400validation_error, missing_idempotency_key, missing_max_bid, invalid_cursor
401missing_api_key, invalid_api_key
403ip_not_allowed, invalid_status_transition (partner attempting LMN-owned transition)
404vehicle_not_found, order_not_found
409invalid_status_transition, past_order_cutoff, duplicate_order
410vehicle_unavailable
422idempotency_key_reused
429rate_limited
500internal_error

Per-code troubleshooting

CodeHTTPMeaningWhenWhat to do
validation_error400Request shape failed validation.Bad enum, missing field, model without make, ids > 100, from without to.Inspect error.details.issues[].path. Fix the request; do not retry as-is.
missing_idempotency_key400Idempotency-Key header absent on POST.Any POST or DELETE without header.Add UUID v4 header, retry.
invalid_cursor400Cursor invalid, expired, or sort-mismatched.Resending a cursor after changing sort=.Restart pagination from page 1 with the desired sort.
missing_max_bid400Auction vehicle requires max_bid_amount_usd.POST with null/omitted/below-listing bid.Add max_bid_amount_usd (integer > 0, ≥ listing). Not required for buy-now.
missing_api_key401x-api-key header absent.Any request without header.Add the header.
invalid_api_key401Key not recognized, revoked, or wrong env.Sandbox key against production URL, or revoked key.Verify env (sandbox vs production); rotate if compromised.
ip_not_allowed403Source IP not in allowlist.Egress IP missing from per-env allowlist.Email integrations@lmnauto.com to add IP. Check egress NAT stability.
invalid_status_transition403 / 409Requested transition not permitted.403: partner attempting LMN-owned fulfillment_detail. 409: delivered from non-shipping, or DELETE from non-proceed.Re-fetch GET /v1/orders/{id} to see current state. Only use partner-permitted transitions.
vehicle_not_found404Unknown vehicle ID.Stale or wrong-env ID.Refresh the listing; confirm correct base URL.
order_not_found404Unknown order ID for this key.Wrong env, cross-key ID, or deleted.Confirm correct base URL; the ID belongs to your account.
past_order_cutoff409POST after the auction’s cutoff.auction_date - 1 day, midnight KST already passed.Inform dealer that the order window is closed.
duplicate_order409Active order already exists for this vehicle.Repeat POST while a prior order is not terminal. details.existing_order_id references it.Redirect user to existing order page. Do not auto-retry.
idempotency_key_reused422Same Idempotency-Key with a different vehicle_id.Client-library bug reusing keys across logical requests.Inspect details.original_vehicle_id. Generate a fresh key per new order.
vehicle_unavailable410Vehicle no longer available.Dealer or buy-now listing disappeared.Move order to cancelled in UI; notify dealer.
rate_limited429Per-key rate limit exceeded.Burst exceeded sliding-window bucket.Respect Retry-After header; client-side exponential backoff.
internal_error500Server-side failure.Rare; LMN on-call is paged automatically. Body carries only a generic message — no stack traces.Retry with exponential backoff (3 tries). If persistent, share request_id with support.