Blocked Orders — Visibility
This page explains how Operators and Customer Admins can find and review orders blocked by Buying Policies, and how to pivot to reasons and unblock actions.
Key points
- Use the list endpoint with
blockedByBuyingPolicy=trueto retrieve blocked orders.- Filter by blocking policy types (e.g.,
MANUAL_VALIDATION) to focus your view.- Do not rely on a bespoke “blocked” status; the filter is the stable contract.
- From a single order, fetch blocking reasons and, if allowed, force validation and review audit history.
🔎 Find blocked orders
List endpoint
- GET /v1/logistic-orders - ADM-ORDER-551
Core filters
blockedByBuyingPolicy=true- returns only orders blocked by a policyblockingPolicyTypes=[...]- limits to specific policy buckets (e.g.,MANUAL_VALIDATION,CREDIT_CONTROL,QUOTAS)- Standard pagination applies
Example
GET /v1/logistic-orders?blockedByBuyingPolicy=true&blockingPolicyTypes=MANUAL_VALIDATION&pageSize=50Your specs note that a special “blocked” status may be phased out; prefer the filters above for forward compatibility.
🗺️ Views you can build
- By policy: filter on
blockingPolicyTypesto slice Credit vs Quotas vs Manual Validation. - Global:
blockedByBuyingPolicy=truewithout further scoping. - By account: combine with your account scoping filters.
- Per order: jump to an order’s details and fetch reasons.
📈 Blocked list - flow
graph LR
%% ---------- Flow ----------
UI[List blocked orders view] --> Q[GET /v1/logistic-orders<br>ADM-ORDER-551]
Q --> F{Filters}
F --> T1[blockedByBuyingPolicy<br>= true]
F --> T2[blockingPolicyTypes<br>= Manual Validation or Credit Control or Quotas]
Q --> P{Has next token}
P -->|Yes| N[GET next page]
P -->|No| D[Done]
%% ---------- Styles ----------
classDef total fill:#e8f1ff,stroke:#2f6feb,stroke-width:2px,color:#0b3d91;
classDef diff fill:#fff4e5,stroke:#f59e0b,stroke-width:2px,color:#7a3e00;
classDef visible fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b;
classDef resp fill:#f2f4f7,stroke:#475569,stroke-width:2px,color:#111827;
class UI total;
class Q diff;
class F,T1,T2 resp;
class P resp;
class N visible;
class D resp;
style UI rx:8,ry:8
style Q rx:8,ry:8
style F rx:8,ry:8
style T1 rx:8,ry:8
style T2 rx:8,ry:8
style P rx:8,ry:8
style N rx:8,ry:8
style D rx:8,ry:8
🧾 Drill down: reasons and actions
From a selected blocked order:
- Fetch reasons
- GET /v1/buying-policies/blocking-reasons - ADM-BUYING-POLICY-552
- Force validation (unblock)
- POST /v1/logistic-orders/unblock - ADM-ORDER-150
- Audit history
- GET /v1/logistic-orders/:logisticOrderId/unblock-history - ADM-ORDER-550
Order details — flow
graph LR O[Open order detail] --> R[GET blocking reasons<br>ADM-BUYING-POLICY-552] O --> U[POST unblock<br>ADM-ORDER-150] U --> H[GET unblock history<br>ADM-ORDER-550] R --> H %% ---------- Styles ---------- classDef inter fill:#fee2e2,stroke:#ef4444,stroke-width:2px,color:#7f1d1d; classDef visible fill:#ecfdf5,stroke:#10b981,stroke-width:2px,color:#064e3b; classDef resp fill:#f2f4f7,stroke:#475569,stroke-width:2px,color:#111827; class O resp; class R,U,H visible; style O rx:8,ry:8 style R rx:8,ry:8 style U rx:8,ry:8 style H rx:8,ry:8
✅ Operator checklist
- Always include
blockedByBuyingPolicy=truewhen listing blocked orders. - Narrow down with
blockingPolicyTypesto focus teams and queues. - Use reasons to communicate precisely to stakeholders.
- Use unblock only when policy criteria are satisfied or a proper override is warranted; history will capture the action.
🔗 API quicklinks
- GET /v1/logistic-orders - ADM-ORDER-551
- GET /v1/buying-policies/blocking-reasons - ADM-BUYING-POLICY-552
- POST /v1/logistic-orders/unblock - ADM-ORDER-150
- GET /v1/logistic-orders/:logisticOrderId/unblock-history - ADM-ORDER-550
Updated 21 days ago
