Skip to content

API Calls

Base: https://api.g3nretailstack.com/ics

Source of truth: /internal-docs/ics-openapi.yaml/ics/openapi.yaml

Notes: samples are schema-derived placeholders. Replace placeholder values (ORGCODE, SESSION_GUID, etc.) with real values.

Inventory

MethodPathSummaryRequest schemaResponse schema
POST/adjustment/createCreate manual adjustment (draft)AdjustmentCreateRequestAdjustmentEnvelope
POST/allocation/createCreate allocation (draft)AllocationCreateRequestAllocationEnvelope
POST/allocation/expireExpire allocation (draft)AllocationExpireRequestAllocationEnvelope
POST/allocation/releaseRelease allocation (draft)AllocationReleaseRequestAllocationEnvelope
POST/allocation/suggestSuggest allocation quantities (draft)AllocationSuggestRequestAllocationSuggestEnvelope
POST/atp/queryCompute channel-aware Available-to-Promise across facilities (read-only, no events)NoneEnvelope
POST/bin/createCreate bin (draft)BinCreateRequestBinEnvelope
POST/bin/getGet bin (draft)BinGetRequestBinEnvelope
POST/bin/listList bins (draft)BinListRequestBinListEnvelope
POST/bin/status/setSet bin status (draft)BinStatusSetRequestBinEnvelope
POST/commentAdd comment (draft)CommentAddRequestCommentEnvelope
POST/comment/getGet comment (draft)CommentGetRequestCommentEnvelope
POST/comment/listList comments (draft)CommentListRequestCommentListEnvelope
POST/comment/reportReport top-N largest comments (draft)CommentReportRequestCommentReportEnvelope
POST/comment/reviseRevise comment (draft)CommentReviseRequestCommentEnvelope
POST/comment/statusUpdate comment status (draft)CommentStatusRequestCommentEnvelope
POST/commit/createCreate commit (draft)CommitCreateRequestCommitEnvelope
POST/commit/create-directDirect commit from available stock (draft)CommitCreateRequestCommitEnvelope
POST/commit/releaseRelease commit (draft)CommitReleaseRequestCommitEnvelope
POST/consignment/consumeConsume consignment stock (draft)ConsignmentConsumeRequestConsignmentEnvelope
POST/consignment/receiveReceive consignment stock (draft)ConsignmentReceiveRequestConsignmentEnvelope
POST/consignment/settleSettle consignment usage (draft)ConsignmentSettlementRequestConsignmentEnvelope
POST/count/approveApprove count results (draft)CountApproveRequestCountEnvelope
POST/count/createCreate count (draft)CountCreateRequestCountEnvelope
POST/count/plan/getGet count plan (draft)CountPlanGetRequestCountPlanEnvelope
POST/count/plan/listList count plans (draft)CountPlanListRequestCountPlanListEnvelope
POST/count/plan/setCreate or update count plan (draft)CountPlanSetRequestCountPlanEnvelope
POST/count/plan/status/setSet count plan status (draft)CountPlanStatusSetRequestCountPlanEnvelope
POST/count/rejectReject count results (draft)CountRejectRequestCountEnvelope
POST/count/submitSubmit count results (draft)CountSubmitRequestCountEnvelope
POST/demand/signal/computeCompute demand signals for a facility from stock card entries (G83)NoneEnvelope
POST/demand/signal/getGet demand signal for a variant at a facilityNoneEnvelope
POST/demand/signal/listList demand signals for a facilityNoneEnvelope
POST/holdback/getFetch a holdback rule by scopeNoneEnvelope
POST/holdback/listList all holdback rules for a facilityNoneEnvelope
POST/holdback/setCreate or update a holdback rule for a facility (scope '*' = facility-wide, or variant_id for per-variant override)NoneEnvelope
POST/inbox/createCreate inbox notification (draft)InboxCreateRequestInboxEnvelope
POST/inbox/getGet inbox notification (draft)InboxGetRequestInboxEnvelope
POST/inbox/listList inbox notifications (draft)InboxListRequestInboxListEnvelope
POST/inbox/stateUpdate inbox state (draft)InboxStateRequestInboxEnvelope
POST/inbox/statusUpdate inbox status (draft)InboxStatusRequestInboxEnvelope
POST/pack/recordRecord pack movement (draft)PackRecordRequestStockCardEntryEnvelope
POST/pick/recordRecord pick movement (draft)PickRecordRequestStockCardEntryEnvelope
POST/putaway/recordRecord putaway movement (draft)PutawayRecordRequestStockCardEntryEnvelope
POST/qc/completeComplete QC for a receipt (draft)QcCompleteRequestReceiveEnvelope
POST/receive/getGet receipt (draft)ReceiveGetRequestReceiveEnvelope
POST/receive/listList receipts (draft)ReceiveListRequestReceiveListEnvelope
POST/receive/recordRecord receipt (draft)ReceiveRecordRequestReceiveEnvelope
POST/replenishment/recordRecord replenishment movement (draft)ReplenishmentRecordRequestStockCardEntryEnvelope
POST/replenishment/rule/getGet replenishment rule (draft)ReplenishmentRuleGetRequestReplenishmentRuleEnvelope
POST/replenishment/rule/listList replenishment rules (draft)ReplenishmentRuleListRequestReplenishmentRuleListEnvelope
POST/replenishment/rule/setSet replenishment rule (draft)ReplenishmentRuleSetRequestReplenishmentRuleEnvelope
POST/replenishment/rule/status/setSet replenishment rule status (draft)ReplenishmentRuleStatusSetRequestReplenishmentRuleEnvelope
POST/replenishment/suggestSuggest replenishment quantities (draft)ReplenishmentSuggestRequestReplenishmentSuggestEnvelope
POST/reservation/createCreate reservation (draft)ReservationCreateRequestReservationEnvelope
POST/reservation/expireExpire reservation (draft)ReservationExpireRequestReservationEnvelope
POST/reservation/releaseRelease reservation (draft)ReservationReleaseRequestReservationEnvelope
POST/search/commentsSearch comments (org-wide)CommentSearchRequestCommentSearchEnvelope
POST/search/inboxSearch inbox notifications (org-wide)InboxSearchRequestInboxSearchEnvelope
POST/serial/360Composite serial 360 — returns serial record + all related warranty claims in one callNoneEnvelope
POST/serial/getGet a serial record by serial_number + variant_idNoneSerialEnvelope
POST/serial/listList serial records by variant_id or status (paginated)NoneSerialListEnvelope
POST/serial/lookupLookup serial by serial_number alone (returns all variants)NoneSerialListEnvelope
POST/serial/lookup-udiLookup serial records by UDI (FDA recall support)NoneSerialListEnvelope
POST/serial/registerRegister a serial number with metadataNoneSerialEnvelope
POST/serial/updateUpdate serial record metadata with expected_revisionNoneSerialEnvelope
POST/ship/recordRecord ship movement (draft)ShipRecordRequestStockCardEntryEnvelope
POST/snapshot/createCapture a point-in-time inventory snapshot for a facility (G85)NoneEnvelope
POST/snapshot/detailGet detail items (per-variant breakdown) of an inventory snapshotNoneEnvelope
POST/snapshot/getGet an inventory snapshot by IDNoneEnvelope
POST/snapshot/listList inventory snapshots for a facilityNoneEnvelope
GET/statHealth checkNoneEnvelope
POST/stock/card/listList stock card entries (draft)StockCardListRequestStockCardEnvelope
POST/stock/getGet stock position (draft)StockGetRequestStockEnvelope
POST/stock/listList stock positions (draft)StockListRequestStockListEnvelope
POST/stock/policy/getGet stock policy (draft)StockPolicyGetRequestStockPolicyEnvelope
POST/stock/policy/setSet stock policy (draft)StockPolicySetRequestStockPolicyEnvelope
POST/stock/transitionTransition stock between buckets (draft)StockTransitionRequestStockTransitionEnvelope
POST/transfer/reportTransfer analytics report (draft)TransferReportRequestTransferReportEnvelope
POST/transfer/request/approveApprove transfer request (draft)TransferRequestApproveRequestTransferEnvelope
POST/transfer/request/createCreate transfer request (draft)TransferRequestCreateRequestTransferEnvelope
POST/transfer/request/getGet transfer request (draft)TransferRequestGetRequestTransferEnvelope
POST/transfer/request/listList transfer requests (draft)TransferRequestListRequestTransferListEnvelope
POST/transfer/request/submitSubmit transfer request (draft)TransferRequestSubmitRequestTransferEnvelope
POST/transfer/shipment/getGet transfer shipment (draft)TransferShipmentGetRequestTransferShipmentEnvelope
POST/transfer/shipment/listList transfer shipments (draft)TransferShipmentListRequestTransferShipmentListEnvelope
POST/transfer/shipment/receiveReceive transfer shipment (draft)TransferReceiveRequestTransferShipmentEnvelope
POST/transfer/shipment/recordRecord transfer shipment (draft)TransferShipmentRecordRequestTransferShipmentEnvelope
POST/transfer/suggestSuggest transfer quantities (draft)TransferSuggestRequestTransferSuggestEnvelope
POST/zone/createCreate zone (draft)ZoneCreateRequestZoneEnvelope
POST/zone/getGet zone (draft)ZoneGetRequestZoneEnvelope
POST/zone/listList zones (draft)ZoneListRequestZoneListEnvelope
POST/zone/status/setSet zone status (draft)ZoneStatusSetRequestZoneEnvelope

Call details

POST /adjustment/create

Purpose: Create manual adjustment (draft)

Notes: Create manual adjustment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: AdjustmentCreateRequest Response schema: AdjustmentEnvelope

Sample request (schema-derived)

json
{
  "adjustment": {
    "policy_versions": {
      "adjustment_policy_version": "string"
    }
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "adjustment": {
      "policy_versions": {
        "adjustment_policy_version": "string"
      }
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /adjustment/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /allocation/create

Purpose: Create allocation (draft)

Notes: Create allocation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: AllocationCreateRequest Response schema: AllocationEnvelope

Sample request (schema-derived)

json
{
  "allocation": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "allocation": {
      "allocation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /allocation/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /allocation/expire

Purpose: Expire allocation (draft)

Notes: Expire allocation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: AllocationExpireRequest Response schema: AllocationEnvelope

Sample request (schema-derived)

json
{
  "allocation_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "allocation": {
      "allocation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /allocation/expire",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /allocation/release

Purpose: Release allocation (draft)

Notes: Release allocation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: AllocationReleaseRequest Response schema: AllocationEnvelope

Sample request (schema-derived)

json
{
  "allocation_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "allocation": {
      "allocation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /allocation/release",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /allocation/suggest

Purpose: Suggest allocation quantities (draft)

Notes: Suggest allocation quantities (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier B (p95 300ms).

Request schema: AllocationSuggestRequest Response schema: AllocationSuggestEnvelope

Sample request (schema-derived)

json
{
  "logical_guid": "LOGICAL_GUID",
  "channel_code": "pos_generic",
  "variant_id": "VARIANT_ID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "suggestions": [
      {
        "suggestion_id": "string",
        "logical_guid": "LOGICAL_GUID",
        "channel_code": "pos_generic"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /allocation/suggest",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /atp/query

Purpose: Compute channel-aware Available-to-Promise across facilities (read-only, no events)

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "variants": [
      {
        "variant_id": "VARIANT_ID",
        "total_on_hand": 0,
        "total_available": 0
      }
    ],
    "facility_count": 0,
    "variant_count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /atp/query",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /bin/create

Purpose: Create bin (draft)

Notes: Create bin (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 300ms).

Request schema: BinCreateRequest Response schema: BinEnvelope

Sample request (schema-derived)

json
{
  "bin": {
    "zone_code": "CODE1",
    "bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "bin": {
      "bin_id": "string",
      "bin_code": "CODE1",
      "zone_code": "CODE1"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /bin/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /bin/get

Purpose: Get bin (draft)

Notes: Get bin (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).

Request schema: BinGetRequest Response schema: BinEnvelope

Sample request (schema-derived)

json
{
  "zone_code": "CODE1",
  "bin_code": "CODE1"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "bin": {
      "bin_id": "string",
      "bin_code": "CODE1",
      "zone_code": "CODE1"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /bin/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /bin/list

Purpose: List bins (draft)

Notes: List bins (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: BinListRequest Response schema: BinListEnvelope

Sample request (schema-derived)

json
{
  "zone_code": "CODE1",
  "status": "active",
  "limit": 8
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "bins": [
      {
        "bin_id": "string",
        "bin_code": "CODE1",
        "zone_code": "CODE1"
      }
    ],
    "next_token": {}
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /bin/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /bin/status/set

Purpose: Set bin status (draft)

Notes: Set bin status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 350ms).

Request schema: BinStatusSetRequest Response schema: BinEnvelope

Sample request (schema-derived)

json
{
  "zone_code": "CODE1",
  "bin_code": "CODE1",
  "status": "active",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "bin": {
      "bin_id": "string",
      "bin_code": "CODE1",
      "zone_code": "CODE1"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /bin/status/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment

Purpose: Add comment (draft)

Notes: Add comment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier A (p95 500ms).

Request schema: CommentAddRequest Response schema: CommentEnvelope

Sample request (schema-derived)

json
{
  "target_type": "string",
  "target_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "comment": {
      "comment_id": "string",
      "target_type": "string",
      "target_id": "string",
      "status": "current",
      "current_revision": 0,
      "created_at": "2026-01-01T00:00:00Z"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment/get

Purpose: Get comment (draft)

Notes: Get comment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).

Request schema: CommentGetRequest Response schema: CommentEnvelope

Sample request (schema-derived)

json
{
  "comment_id": "string",
  "target_type": "string",
  "target_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "comment": {
      "comment_id": "string",
      "target_type": "string",
      "target_id": "string",
      "status": "current",
      "current_revision": 0,
      "created_at": "2026-01-01T00:00:00Z"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment/list

Purpose: List comments (draft)

Notes: List comments (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: CommentListRequest Response schema: CommentListEnvelope

Sample request (schema-derived)

json
{
  "target_type": "string",
  "target_id": "string",
  "user_guid": "USER_GUID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "items": [
      {
        "comment_id": "string",
        "target_type": "string",
        "target_id": "string",
        "status": "current",
        "current_revision": 0,
        "created_at": "2026-01-01T00:00:00Z"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment/report

Purpose: Report top-N largest comments (draft)

Notes: Report top-N largest comments (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier A (p95 500ms).

Request schema: CommentReportRequest Response schema: CommentReportEnvelope

Sample request (schema-derived)

json
{
  "limit": 8
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "items": [
      {
        "comment_id": "string",
        "target_type": "string",
        "target_id": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment/report",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment/revise

Purpose: Revise comment (draft)

Notes: Revise comment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier A (p95 500ms).

Request schema: CommentReviseRequest Response schema: CommentEnvelope

Sample request (schema-derived)

json
{
  "comment_id": "string",
  "target_type": "string",
  "target_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "comment": {
      "comment_id": "string",
      "target_type": "string",
      "target_id": "string",
      "status": "current",
      "current_revision": 0,
      "created_at": "2026-01-01T00:00:00Z"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment/revise",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /comment/status

Purpose: Update comment status (draft)

Notes: Update comment status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier A (p95 500ms).

Request schema: CommentStatusRequest Response schema: CommentEnvelope

Sample request (schema-derived)

json
{
  "comment_id": "string",
  "target_type": "string",
  "target_id": "string",
  "status": "current"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "comment": {
      "comment_id": "string",
      "target_type": "string",
      "target_id": "string",
      "status": "current",
      "current_revision": 0,
      "created_at": "2026-01-01T00:00:00Z"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /comment/status",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /commit/create

Purpose: Create commit (draft)

Notes: Create commit (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: CommitCreateRequest Response schema: CommitEnvelope

Sample request (schema-derived)

json
{
  "commit": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "commit": {
      "commit_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /commit/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /commit/create-direct

Purpose: Direct commit from available stock (draft)

Notes: Direct commit — atomically moves stock from available to committed in a single step, bypassing reservation and allocation phases. Designed for in-store POS fast checkout where intermediate promise states add no business value. Condition: available >= qty. Stores commit_mode: 'direct' on the commit record. Route class Tier D (p95 200ms, p99 400ms).

Request schema: CommitCreateRequest Response schema: CommitEnvelope

Sample request (schema-derived)

json
{
  "commit": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "commit": {
      "commit_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /commit/create-direct",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /commit/release

Purpose: Release commit (draft)

Notes: Release commit (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: CommitReleaseRequest Response schema: CommitEnvelope

Sample request (schema-derived)

json
{
  "commit_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "commit": {
      "commit_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /commit/release",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /consignment/consume

Purpose: Consume consignment stock (draft)

Notes: Consume consignment stock (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier C (p95 300ms, p99 700ms).

Request schema: ConsignmentConsumeRequest Response schema: ConsignmentEnvelope

Sample request (schema-derived)

json
{
  "consignment": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ],
    "owner_ref": {
      "kind": "string",
      "id": "string"
    },
    "lines": [
      {
        "variant_id": null,
        "qty": null
      }
    ],
    "channel_code": "pos_generic"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "consignment": {
      "consignment_id": "string",
      "consignment_type": "receive",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /consignment/consume",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /consignment/receive

Purpose: Receive consignment stock (draft)

Notes: Receive consignment stock (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 400ms, p99 800ms).

Request schema: ConsignmentReceiveRequest Response schema: ConsignmentEnvelope

Sample request (schema-derived)

json
{
  "consignment": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ],
    "owner_ref": {
      "kind": "string",
      "id": "string"
    },
    "lines": [
      {
        "variant_id": null,
        "qty": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "consignment": {
      "consignment_id": "string",
      "consignment_type": "receive",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /consignment/receive",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /consignment/settle

Purpose: Settle consignment usage (draft)

Notes: Settle consignment usage (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 400ms, p99 800ms).

Request schema: ConsignmentSettlementRequest Response schema: ConsignmentEnvelope

Sample request (schema-derived)

json
{
  "settlement": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ],
    "owner_ref": {
      "kind": "string",
      "id": "string"
    },
    "amount": {
      "currency": "string",
      "amount": 0
    },
    "lines": [
      {
        "variant_id": null,
        "qty": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "consignment": {
      "consignment_id": "string",
      "consignment_type": "receive",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /consignment/settle",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/approve

Purpose: Approve count results (draft)

Notes: Approve count results (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 400ms, p99 900ms).

Request schema: CountApproveRequest Response schema: CountEnvelope

Sample request (schema-derived)

json
{
  "count_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "count": {
      "count_id": "string",
      "status": "active",
      "count_type": "cycle"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/approve",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/create

Purpose: Create count (draft)

Notes: Create count (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: CountCreateRequest Response schema: CountEnvelope

Sample request (schema-derived)

json
{
  "count": {
    "count_id": "string",
    "status": "active",
    "count_type": "cycle"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "count": {
      "count_id": "string",
      "status": "active",
      "count_type": "cycle"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/plan/get

Purpose: Get count plan (draft)

Notes: Get count plan (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier C (p95 250ms, p99 600ms).

Request schema: CountPlanGetRequest Response schema: CountPlanEnvelope

Sample request (schema-derived)

json
{
  "plan_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "plan": {
      "plan_id": "string",
      "caption": "Example caption",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/plan/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/plan/list

Purpose: List count plans (draft)

Notes: List count plans (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier C (p95 350ms, p99 800ms).

Request schema: CountPlanListRequest Response schema: CountPlanListEnvelope

Sample request (schema-derived)

json
{
  "status": "active",
  "limit": 8,
  "next_token": {}
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "plans": [
      {
        "plan_id": "string",
        "caption": "Example caption",
        "logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/plan/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/plan/set

Purpose: Create or update count plan (draft)

Notes: Create or update count plan (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier C (p95 350ms, p99 800ms).

Request schema: CountPlanSetRequest Response schema: CountPlanEnvelope

Sample request (schema-derived)

json
{
  "plan": {
    "plan_id": "string",
    "caption": "Example caption",
    "logical_guid": "LOGICAL_GUID"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "plan": {
      "plan_id": "string",
      "caption": "Example caption",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/plan/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/plan/status/set

Purpose: Set count plan status (draft)

Notes: Set count plan status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier C (p95 300ms, p99 700ms).

Request schema: CountPlanStatusSetRequest Response schema: CountPlanEnvelope

Sample request (schema-derived)

json
{
  "plan_id": "string",
  "status": "active",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "plan": {
      "plan_id": "string",
      "caption": "Example caption",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/plan/status/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/reject

Purpose: Reject count results (draft)

Notes: Reject count results (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 800ms).

Request schema: CountRejectRequest Response schema: CountEnvelope

Sample request (schema-derived)

json
{
  "count_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "count": {
      "count_id": "string",
      "status": "active",
      "count_type": "cycle"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/reject",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /count/submit

Purpose: Submit count results (draft)

Notes: Submit count results (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: CountSubmitRequest Response schema: CountEnvelope

Sample request (schema-derived)

json
{
  "count_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "count": {
      "count_id": "string",
      "status": "active",
      "count_type": "cycle"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /count/submit",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /demand/signal/compute

Purpose: Compute demand signals for a facility from stock card entries (G83)

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "computed_count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /demand/signal/compute",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /demand/signal/get

Purpose: Get demand signal for a variant at a facility

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "demand_signal": {}
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /demand/signal/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /demand/signal/list

Purpose: List demand signals for a facility

Notes: Paginated; use limit and next_token.

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "demand_signals": [
      {}
    ],
    "next_token": {},
    "count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /demand/signal/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /holdback/get

Purpose: Fetch a holdback rule by scope

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "holdback": {}
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /holdback/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /holdback/list

Purpose: List all holdback rules for a facility

Notes: Paginated; use limit and next_token.

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "holdbacks": [
      {}
    ],
    "next_token": {},
    "count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /holdback/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /holdback/set

Purpose: Create or update a holdback rule for a facility (scope '*' = facility-wide, or variant_id for per-variant override)

Notes: If this updates a revisioned record, expected_revision is required.

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "holdback": {
      "scope": "string",
      "holdback_type": "absolute",
      "holdback_value": 0
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /holdback/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /inbox/create

Purpose: Create inbox notification (draft)

Notes: Create inbox notification (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier A (p95 500ms).

Request schema: InboxCreateRequest Response schema: InboxEnvelope

Sample request (schema-derived)

json
{
  "team_guid": "string",
  "title": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "notification": {
      "notification_id": "string",
      "team_guid": "string",
      "status": "inbox",
      "state": "pending",
      "priority": "low",
      "title": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /inbox/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /inbox/get

Purpose: Get inbox notification (draft)

Notes: Get inbox notification (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).

Request schema: InboxGetRequest Response schema: InboxEnvelope

Sample request (schema-derived)

json
{
  "notification_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "notification": {
      "notification_id": "string",
      "team_guid": "string",
      "status": "inbox",
      "state": "pending",
      "priority": "low",
      "title": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /inbox/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /inbox/list

Purpose: List inbox notifications (draft)

Notes: List inbox notifications (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: InboxListRequest Response schema: InboxListEnvelope

Sample request (schema-derived)

json
{
  "team_guid": "string",
  "org_wide": false,
  "status": "inbox"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "items": [
      {
        "notification_id": "string",
        "team_guid": "string",
        "status": "inbox",
        "state": "pending",
        "priority": "low",
        "title": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /inbox/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /inbox/state

Purpose: Update inbox state (draft)

Notes: Update inbox state (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier A (p95 500ms).

Request schema: InboxStateRequest Response schema: InboxEnvelope

Sample request (schema-derived)

json
{
  "notification_id": "string",
  "state": "pending"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "notification": {
      "notification_id": "string",
      "team_guid": "string",
      "status": "inbox",
      "state": "pending",
      "priority": "low",
      "title": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /inbox/state",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /inbox/status

Purpose: Update inbox status (draft)

Notes: Update inbox status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier A (p95 500ms).

Request schema: InboxStatusRequest Response schema: InboxEnvelope

Sample request (schema-derived)

json
{
  "notification_id": "string",
  "status": "inbox"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "notification": {
      "notification_id": "string",
      "team_guid": "string",
      "status": "inbox",
      "state": "pending",
      "priority": "low",
      "title": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /inbox/status",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /pack/record

Purpose: Record pack movement (draft)

Notes: Record pack movement (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: PackRecordRequest Response schema: StockCardEntryEnvelope

Sample request (schema-derived)

json
{
  "pack": {
    "variant_id": "VARIANT_ID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "from_zone_code": "CODE1",
    "from_bin_code": "CODE1",
    "to_zone_code": "CODE1",
    "to_bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entry": {
      "entry_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /pack/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /pick/record

Purpose: Record pick movement (draft)

Notes: Record pick movement (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: PickRecordRequest Response schema: StockCardEntryEnvelope

Sample request (schema-derived)

json
{
  "pick": {
    "variant_id": "VARIANT_ID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "from_zone_code": "CODE1",
    "from_bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entry": {
      "entry_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /pick/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /putaway/record

Purpose: Record putaway movement (draft)

Notes: Record putaway movement (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: PutawayRecordRequest Response schema: StockCardEntryEnvelope

Sample request (schema-derived)

json
{
  "putaway": {
    "variant_id": "VARIANT_ID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "to_zone_code": "CODE1",
    "to_bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entry": {
      "entry_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /putaway/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /qc/complete

Purpose: Complete QC for a receipt (draft)

Notes: Complete QC for a receipt (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 350ms, p99 700ms).

Request schema: QcCompleteRequest Response schema: ReceiveEnvelope

Sample request (schema-derived)

json
{
  "qc": {
    "receipt_id": "string",
    "lines": [
      {
        "line_id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "receipt": {
      "receipt_id": "string",
      "logical_guid": "LOGICAL_GUID",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /qc/complete",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /receive/get

Purpose: Get receipt (draft)

Notes: Get receipt (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier C (p95 250ms, p99 600ms).

Request schema: ReceiveGetRequest Response schema: ReceiveEnvelope

Sample request (schema-derived)

json
{
  "receipt_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "receipt": {
      "receipt_id": "string",
      "logical_guid": "LOGICAL_GUID",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /receive/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /receive/list

Purpose: List receipts (draft)

Notes: List receipts (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier C (p95 350ms, p99 800ms).

Request schema: ReceiveListRequest Response schema: ReceiveListEnvelope

Sample request (schema-derived)

json
{
  "status": "active",
  "limit": 8,
  "next_token": {}
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "receipts": [
      {
        "receipt_id": "string",
        "logical_guid": "LOGICAL_GUID",
        "status": "active"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /receive/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /receive/record

Purpose: Record receipt (draft)

Notes: Record receipt (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: ReceiveRecordRequest Response schema: ReceiveEnvelope

Sample request (schema-derived)

json
{
  "receipt": {
    "receipt_id": "string",
    "logical_guid": "LOGICAL_GUID",
    "status": "active"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "receipt": {
      "receipt_id": "string",
      "logical_guid": "LOGICAL_GUID",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /receive/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/record

Purpose: Record replenishment movement (draft)

Notes: Record replenishment movement (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 350ms).

Request schema: ReplenishmentRecordRequest Response schema: StockCardEntryEnvelope

Sample request (schema-derived)

json
{
  "replenishment": {
    "variant_id": "VARIANT_ID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "from_zone_code": "CODE1",
    "from_bin_code": "CODE1",
    "to_zone_code": "CODE1",
    "to_bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entry": {
      "entry_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/rule/get

Purpose: Get replenishment rule (draft)

Notes: Get replenishment rule (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier C (p95 250ms, p99 600ms).

Request schema: ReplenishmentRuleGetRequest Response schema: ReplenishmentRuleEnvelope

Sample request (schema-derived)

json
{
  "rule_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "rule": {
      "rule_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/rule/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/rule/list

Purpose: List replenishment rules (draft)

Notes: List replenishment rules (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier C (p95 300ms, p99 700ms).

Request schema: ReplenishmentRuleListRequest Response schema: ReplenishmentRuleListEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID",
  "status": "active",
  "pick_bin_code": "CODE1"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "rules": [
      {
        "rule_id": "string",
        "variant_id": "VARIANT_ID",
        "sku": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/rule/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/rule/set

Purpose: Set replenishment rule (draft)

Notes: Set replenishment rule (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 350ms).

Request schema: ReplenishmentRuleSetRequest Response schema: ReplenishmentRuleEnvelope

Sample request (schema-derived)

json
{
  "rule": {
    "variant_id": "VARIANT_ID",
    "pick_zone_code": "CODE1",
    "pick_bin_code": "CODE1",
    "min_qty": {
      "qty": 0,
      "uom": "string"
    },
    "max_qty": {
      "qty": 0,
      "uom": "string"
    }
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "rule": {
      "rule_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/rule/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/rule/status/set

Purpose: Set replenishment rule status (draft)

Notes: Set replenishment rule status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 350ms).

Request schema: ReplenishmentRuleStatusSetRequest Response schema: ReplenishmentRuleEnvelope

Sample request (schema-derived)

json
{
  "rule_id": "string",
  "status": "active",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ],
  "expected_revision": 0
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "rule": {
      "rule_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/rule/status/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /replenishment/suggest

Purpose: Suggest replenishment quantities (draft)

Notes: Suggest replenishment quantities (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier B (p95 300ms).

Request schema: ReplenishmentSuggestRequest Response schema: ReplenishmentSuggestEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID",
  "sku": "string",
  "status": "active"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "suggestions": [
      {
        "suggestion_id": "string",
        "rule_id": "string",
        "logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /replenishment/suggest",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /reservation/create

Purpose: Create reservation (draft)

Notes: Create reservation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: ReservationCreateRequest Response schema: ReservationEnvelope

Sample request (schema-derived)

json
{
  "reservation": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "reservation": {
      "reservation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /reservation/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /reservation/expire

Purpose: Expire reservation (draft)

Notes: Expire reservation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: ReservationExpireRequest Response schema: ReservationEnvelope

Sample request (schema-derived)

json
{
  "reservation_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "reservation": {
      "reservation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /reservation/expire",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /reservation/release

Purpose: Release reservation (draft)

Notes: Release reservation (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: ReservationReleaseRequest Response schema: ReservationEnvelope

Sample request (schema-derived)

json
{
  "reservation_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "reservation": {
      "reservation_id": "string",
      "status": "active",
      "channel_code": "pos_generic"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /reservation/release",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /search/comments

Purpose: Search comments (org-wide)

Notes: Org-scoped full-text search across comments (ICS/SCM/PCM/CRM/PPM/Influencer/Accounting); results are best-effort and eventually consistent.

Request schema: CommentSearchRequest Response schema: CommentSearchEnvelope

Sample request (schema-derived)

json
{
  "q": "string",
  "services": [
    "string"
  ],
  "target_type": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "items": [
      {
        "service": "string",
        "comment_id": "string",
        "target_type": "string",
        "target_id": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /search/comments",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /search/inbox

Purpose: Search inbox notifications (org-wide)

Notes: Org-scoped full-text search across inbox notifications (ICS/SCM/PCM/CRM/PPM/Influencer/Accounting); results are best-effort and eventually consistent.

Request schema: InboxSearchRequest Response schema: InboxSearchEnvelope

Sample request (schema-derived)

json
{
  "q": "string",
  "services": [
    "string"
  ],
  "team_guid": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "items": [
      {
        "service": "string",
        "notification_id": "string",
        "team_guid": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /search/inbox",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/360

Purpose: Composite serial 360 — returns serial record + all related warranty claims in one call

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "serial": null,
    "warranty_claims": [
      {}
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/360",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/get

Purpose: Get a serial record by serial_number + variant_id

Request schema: None Response schema: SerialEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/list

Purpose: List serial records by variant_id or status (paginated)

Notes: Paginated; use limit and next_token.

Request schema: None Response schema: SerialListEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialListEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/lookup

Purpose: Lookup serial by serial_number alone (returns all variants)

Request schema: None Response schema: SerialListEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialListEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/lookup",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/lookup-udi

Purpose: Lookup serial records by UDI (FDA recall support)

Request schema: None Response schema: SerialListEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialListEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/lookup-udi",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/register

Purpose: Register a serial number with metadata

Notes: Idempotent upsert of a serial record with manufacture date, warranty, condition, UDI. Resolves G50 (serial metadata) and G53 (serial lookup).

Request schema: None Response schema: SerialEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/register",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /serial/update

Purpose: Update serial record metadata with expected_revision

Notes: If this updates a revisioned record, expected_revision is required.

Request schema: None Response schema: SerialEnvelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "note": "See SerialEnvelope"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /serial/update",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /ship/record

Purpose: Record ship movement (draft)

Notes: Record ship movement (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: ShipRecordRequest Response schema: StockCardEntryEnvelope

Sample request (schema-derived)

json
{
  "ship": {
    "variant_id": "VARIANT_ID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "from_zone_code": "CODE1",
    "from_bin_code": "CODE1",
    "to_zone_code": "CODE1",
    "to_bin_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entry": {
      "entry_id": "string",
      "variant_id": "VARIANT_ID",
      "sku": "string"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /ship/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /snapshot/create

Purpose: Capture a point-in-time inventory snapshot for a facility (G85)

Notes: If this updates a revisioned record, expected_revision is required.

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "snapshot": {}
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /snapshot/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /snapshot/detail

Purpose: Get detail items (per-variant breakdown) of an inventory snapshot

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "details": [
      {}
    ],
    "next_token": {},
    "count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /snapshot/detail",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /snapshot/get

Purpose: Get an inventory snapshot by ID

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "snapshot": {}
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /snapshot/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /snapshot/list

Purpose: List inventory snapshots for a facility

Notes: Paginated; use limit and next_token.

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "snapshots": [
      {}
    ],
    "next_token": {},
    "count": 0
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /snapshot/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

GET /stat

Purpose: Health check

Notes: Health check. Tenant routes require x-orgcode; /stat health checks do not. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier A (p95 500ms).

Request schema: None Response schema: Envelope

Sample request (schema-derived)

json
{}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "service": "string",
    "status": "active"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "GET /stat",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/card/list

Purpose: List stock card entries (draft)

Notes: List stock card entries (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: StockCardListRequest Response schema: StockCardEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID",
  "sku": "string",
  "logical_guid": "LOGICAL_GUID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "entries": [
      {
        "entry_id": "string",
        "variant_id": "VARIANT_ID",
        "sku": "string"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/card/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/get

Purpose: Get stock position (draft)

Notes: When sku is provided without logical_guid, returns a list of matching positions across authorized logical facilities.

Request schema: StockGetRequest Response schema: StockEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID",
  "sku": "string",
  "include_bins": false
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "stock": {
      "variant_id": "VARIANT_ID",
      "sku": "string",
      "logical_guid": "LOGICAL_GUID"
    },
    "positions": [
      {
        "variant_id": "VARIANT_ID",
        "sku": "string",
        "logical_guid": "LOGICAL_GUID"
      }
    ],
    "next_token": "string"
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/list

Purpose: List stock positions (draft)

Notes: When sku is provided without logical_guid, returns matching positions across authorized logical facilities.

Request schema: StockListRequest Response schema: StockListEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID",
  "sku": "string",
  "zone_code": "CODE1"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "positions": [
      {
        "variant_id": "VARIANT_ID",
        "sku": "string",
        "logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/policy/get

Purpose: Get stock policy (draft)

Notes: Get stock policy (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier C (p95 150ms, p99 400ms).

Request schema: StockPolicyGetRequest Response schema: StockPolicyEnvelope

Sample request (schema-derived)

json
{
  "variant_id": "VARIANT_ID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "policy": {
      "variant_id": "VARIANT_ID",
      "logical_guid": "LOGICAL_GUID",
      "negative_stock_protection": false
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/policy/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/policy/set

Purpose: Set stock policy (draft)

Notes: Set stock policy (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 250ms, p99 500ms).

Request schema: StockPolicySetRequest Response schema: StockPolicyEnvelope

Sample request (schema-derived)

json
{
  "policy": {
    "variant_id": "VARIANT_ID",
    "logical_guid": "LOGICAL_GUID",
    "negative_stock_protection": false
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "policy": {
      "variant_id": "VARIANT_ID",
      "logical_guid": "LOGICAL_GUID",
      "negative_stock_protection": false
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/policy/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /stock/transition

Purpose: Transition stock between buckets (draft)

Notes: Transition stock between buckets (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: StockTransitionRequest Response schema: StockTransitionEnvelope

Sample request (schema-derived)

json
{
  "transition": {
    "transition_id": "string",
    "variant_id": "VARIANT_ID",
    "logical_guid": "LOGICAL_GUID",
    "qty": {
      "qty": 0,
      "uom": "string"
    },
    "from_bucket": "available",
    "to_bucket": "available",
    "policy_versions": {
      "transition_policy_version": "string"
    }
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transition": {
      "transition_id": "string",
      "variant_id": "VARIANT_ID",
      "logical_guid": "LOGICAL_GUID",
      "qty": {
        "qty": 0,
        "uom": "string"
      },
      "from_bucket": "available",
      "to_bucket": "available",
      "policy_versions": {
        "transition_policy_version": "string"
      }
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /stock/transition",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/report

Purpose: Transfer analytics report (draft)

Notes: Transfer analytics report (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier B (p95 500ms).

Request schema: TransferReportRequest Response schema: TransferReportEnvelope

Sample request (schema-derived)

json
{
  "status": "active",
  "source_logical_guid": "LOGICAL_GUID",
  "dest_logical_guid": "LOGICAL_GUID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "report": {
      "transfer_count": 0
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/report",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/request/approve

Purpose: Approve transfer request (draft)

Notes: Approve transfer request (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier A (p95 500ms).

Request schema: TransferRequestApproveRequest Response schema: TransferEnvelope

Sample request (schema-derived)

json
{
  "transfer_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transfer": {
      "transfer_id": "string",
      "status": "active",
      "source_logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/request/approve",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/request/create

Purpose: Create transfer request (draft)

Notes: Create transfer request (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: TransferRequestCreateRequest Response schema: TransferEnvelope

Sample request (schema-derived)

json
{
  "transfer": {
    "request_context": {
      "orgcode": "ORGCODE",
      "actor": "string",
      "context_source": "session"
    },
    "reason": "example",
    "source_refs": [
      {
        "kind": null,
        "id": null
      }
    ]
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transfer": {
      "transfer_id": "string",
      "status": "active",
      "source_logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/request/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/request/get

Purpose: Get transfer request (draft)

Notes: Get transfer request (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).

Request schema: TransferRequestGetRequest Response schema: TransferEnvelope

Sample request (schema-derived)

json
{
  "transfer_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transfer": {
      "transfer_id": "string",
      "status": "active",
      "source_logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/request/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/request/list

Purpose: List transfer requests (draft)

Notes: List transfer requests (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: TransferRequestListRequest Response schema: TransferListEnvelope

Sample request (schema-derived)

json
{
  "status": "active",
  "source_logical_guid": "LOGICAL_GUID",
  "dest_logical_guid": "LOGICAL_GUID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transfers": [
      {
        "transfer_id": "string",
        "status": "active",
        "source_logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/request/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/request/submit

Purpose: Submit transfer request (draft)

Notes: Submit transfer request (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: TransferRequestSubmitRequest Response schema: TransferEnvelope

Sample request (schema-derived)

json
{
  "transfer_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "transfer": {
      "transfer_id": "string",
      "status": "active",
      "source_logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/request/submit",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/shipment/get

Purpose: Get transfer shipment (draft)

Notes: Get transfer shipment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier B (p95 300ms).

Request schema: TransferShipmentGetRequest Response schema: TransferShipmentEnvelope

Sample request (schema-derived)

json
{
  "transfer_id": "string",
  "shipment_id": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "shipment": {
      "shipment_id": "string",
      "transfer_id": "string",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/shipment/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/shipment/list

Purpose: List transfer shipments (draft)

Notes: List transfer shipments (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier B (p95 300ms).

Request schema: TransferShipmentListRequest Response schema: TransferShipmentListEnvelope

Sample request (schema-derived)

json
{
  "transfer_id": "string",
  "status": "active",
  "exceptions_only": false
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "shipments": [
      {
        "shipment_id": "string",
        "transfer_id": "string",
        "status": "active",
        "shipped_at": "2026-01-01T00:00:00Z",
        "source_logical_guid": "LOGICAL_GUID",
        "dest_logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/shipment/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/shipment/receive

Purpose: Receive transfer shipment (draft)

Notes: Receive transfer shipment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier D (p95 300ms, p99 600ms).

Request schema: TransferReceiveRequest Response schema: TransferShipmentEnvelope

Sample request (schema-derived)

json
{
  "shipment_id": "string",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "shipment": {
      "shipment_id": "string",
      "transfer_id": "string",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/shipment/receive",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/shipment/record

Purpose: Record transfer shipment (draft)

Notes: Record transfer shipment (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier D (p95 300ms, p99 600ms).

Request schema: TransferShipmentRecordRequest Response schema: TransferShipmentEnvelope

Sample request (schema-derived)

json
{
  "shipment": {
    "shipment_id": "string",
    "transfer_id": "string",
    "status": "active"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "shipment": {
      "shipment_id": "string",
      "transfer_id": "string",
      "status": "active"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/shipment/record",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /transfer/suggest

Purpose: Suggest transfer quantities (draft)

Notes: Suggest transfer quantities (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Route class Tier B (p95 300ms).

Request schema: TransferSuggestRequest Response schema: TransferSuggestEnvelope

Sample request (schema-derived)

json
{
  "source_logical_guid": "LOGICAL_GUID",
  "dest_logical_guid": "LOGICAL_GUID",
  "variant_id": "VARIANT_ID"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "suggestions": [
      {
        "suggestion_id": "string",
        "source_logical_guid": "LOGICAL_GUID",
        "dest_logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /transfer/suggest",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /zone/create

Purpose: Create zone (draft)

Notes: Create zone (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 300ms).

Request schema: ZoneCreateRequest Response schema: ZoneEnvelope

Sample request (schema-derived)

json
{
  "zone": {
    "zone_code": "CODE1"
  },
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "zone": {
      "zone_id": "string",
      "zone_code": "CODE1",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /zone/create",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /zone/get

Purpose: Get zone (draft)

Notes: Get zone (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Org-scoped reads may return 404 for non-associated callers (anti-enumeration). Route class Tier C (p95 250ms, p99 600ms).

Request schema: ZoneGetRequest Response schema: ZoneEnvelope

Sample request (schema-derived)

json
{
  "zone_code": "CODE1"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "zone": {
      "zone_id": "string",
      "zone_code": "CODE1",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /zone/get",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /zone/list

Purpose: List zones (draft)

Notes: List zones (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. Paginated with limit/next_token (default 8; clamp 1–256). Route class Tier C (p95 250ms, p99 600ms).

Request schema: ZoneListRequest Response schema: ZoneListEnvelope

Sample request (schema-derived)

json
{
  "status": "active",
  "limit": 8,
  "next_token": "string"
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "zones": [
      {
        "zone_id": "string",
        "zone_code": "CODE1",
        "logical_guid": "LOGICAL_GUID"
      }
    ]
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /zone/list",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}

POST /zone/status/set

Purpose: Set zone status (draft)

Notes: Set zone status (draft). Auth is via headers; org identity uses x-orgcode or body placement as documented. If this updates a revisioned record, expected_revision is required (428 if missing; 409 on mismatch). Route class Tier B (p95 350ms).

Request schema: ZoneStatusSetRequest Response schema: ZoneEnvelope

Sample request (schema-derived)

json
{
  "zone_code": "CODE1",
  "status": "active",
  "reason": "example",
  "source_refs": [
    {
      "kind": "string",
      "id": "string"
    }
  ]
}

Sample response (shape-only)

json
{
  "success": true,
  "data": {
    "zone": {
      "zone_id": "string",
      "zone_code": "CODE1",
      "logical_guid": "LOGICAL_GUID"
    }
  },
  "build": {
    "build_id": "MONDAY-0000000000"
  },
  "stats": {
    "call": "POST /zone/status/set",
    "service": "ics",
    "timestamp_utc": "2026-01-01T00:00:00Z"
  }
}