Lift a shipper Do Not Use block

Clears the block for one customer. POST with a body rather than DELETE: the customer to unblock is not in the path, and a DELETE body is both an HTTP wart and unreachable from our API client. Mirrors the lane pair's /do-not-use + /allow. Idempotent — clearing a block that is not there succeeds. Admin-only. **Authentication:** Bearer token required.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

carrier_idstringRequiredformat: "uuid"

Headers

X-Organization-IDstring or nullOptional
Idempotency-KeystringOptional<=255 characters
A unique key (up to 255 printable ASCII characters, e.g. a UUID) that makes a retry of this request safe. Envoy stores the response for 24 hours; a retry with the same key and the same request returns it again with `Idempotent-Replayed: true` instead of running twice. The same key with a different request returns 422 `idempotency_key_reused`; while the first request is still running, 409 `idempotency_key_in_progress`. 5xx and 429 responses are not stored.

Request

This endpoint expects an object.
customer_namestringRequired1-255 characters

Shipper/customer name whose block should be lifted

reasonenum or nullOptional

Allowed values for AuditLog.reason. DB-enforced via Postgres ENUM.

The set is intentionally shared across all entity_type contexts; the same code (service_quality, compliance, other) means different things depending on whether the audited row is a carrier or a lane preference. Disambiguating is the caller’s job — the frontend renders different human labels per context. Free-text justification lands on AuditLog.reason_note — required when OTHER is chosen, optional (but preserved) for any other code.

reason_notestring or nullOptional<=2000 characters

Response

Successful Response

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error