openapi: 3.1.0 info: title: Manhattan Active Supply Chain (WMS) API description: >- Manhattan Active Supply Chain APIs provide warehouse management (WMS) capabilities including inventory tracking, order processing, labor management, yard management, and shipment execution for distribution center operations. version: 1.0.0 contact: name: Manhattan Associates Developer Support url: https://developer.manh.com/ license: name: Proprietary url: https://www.manh.com/terms-of-use externalDocs: description: Manhattan Active Supply Chain Developer Portal url: https://supplychain.developer.manh.com/ servers: - url: https://api.developer.manh.com/wms/v1 description: Manhattan Active Supply Chain (WMS) REST API security: - OAuth2ClientCredentials: [] paths: /receipts: get: operationId: listReceipts summary: List inbound receipts description: Retrieve inbound receipt records for advance shipment notices and received inventory. tags: - Inbound parameters: - name: status in: query schema: type: string enum: [expected, in_progress, completed, closed] - name: facilityId in: query schema: type: string - name: limit in: query schema: type: integer default: 50 - name: offset in: query schema: type: integer default: 0 responses: '200': description: List of receipts content: application/json: schema: $ref: '#/components/schemas/ReceiptListResponse' post: operationId: createReceipt summary: Create an advance shipment notice (ASN) description: Create an ASN to pre-notify the warehouse of an inbound shipment. tags: - Inbound requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReceiptCreateRequest' responses: '201': description: ASN created content: application/json: schema: $ref: '#/components/schemas/Receipt' /receipts/{receiptId}: get: operationId: getReceipt summary: Get receipt details description: Retrieve full details of an inbound receipt. tags: - Inbound parameters: - name: receiptId in: path required: true schema: type: string responses: '200': description: Receipt details content: application/json: schema: $ref: '#/components/schemas/Receipt' '404': $ref: '#/components/responses/NotFound' /inventory: get: operationId: getWarehouseInventory summary: Query warehouse inventory description: Query real-time inventory positions within the warehouse by item, location, and lot. tags: - Inventory parameters: - name: facilityId in: query schema: type: string - name: itemId in: query schema: type: string - name: locationId in: query schema: type: string - name: lotNumber in: query schema: type: string - name: limit in: query schema: type: integer default: 100 responses: '200': description: Inventory records content: application/json: schema: $ref: '#/components/schemas/WarehouseInventoryResponse' /outbound/orders: get: operationId: listOutboundOrders summary: List outbound orders description: Retrieve warehouse outbound orders for picking, packing, and shipping. tags: - Outbound parameters: - name: status in: query schema: type: string enum: [released, picking, packing, ready_to_ship, shipped] - name: waveId in: query schema: type: string - name: facilityId in: query schema: type: string - name: limit in: query schema: type: integer default: 50 responses: '200': description: List of outbound orders content: application/json: schema: $ref: '#/components/schemas/OutboundOrderListResponse' post: operationId: createOutboundOrder summary: Create an outbound order description: Submit a new outbound order for warehouse fulfillment execution. tags: - Outbound requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OutboundOrderCreateRequest' responses: '201': description: Outbound order created content: application/json: schema: $ref: '#/components/schemas/OutboundOrder' /outbound/orders/{orderId}/ship: post: operationId: shipOutboundOrder summary: Confirm shipment of an outbound order description: Record the shipment of a packed outbound order, capturing carrier and tracking information. tags: - Outbound parameters: - name: orderId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ShipmentConfirmRequest' responses: '200': description: Shipment confirmed content: application/json: schema: $ref: '#/components/schemas/OutboundOrder' /transfers: post: operationId: createInventoryTransfer summary: Create an inventory transfer description: Transfer inventory between locations, facilities, or zones within the warehouse. tags: - Inventory requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransferRequest' responses: '201': description: Transfer created content: application/json: schema: $ref: '#/components/schemas/Transfer' components: securitySchemes: OAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.developer.manh.com/oauth2/token scopes: wms:read: Read warehouse data wms:write: Write warehouse operations responses: Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Invalid request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: Receipt: type: object properties: receiptId: type: string externalASNId: type: string facilityId: type: string supplierId: type: string status: type: string enum: [expected, in_progress, completed, closed] expectedArrivalDate: type: string format: date lines: type: array items: $ref: '#/components/schemas/ReceiptLine' createdAt: type: string format: date-time ReceiptCreateRequest: type: object required: - facilityId - supplierId - lines properties: externalASNId: type: string facilityId: type: string supplierId: type: string expectedArrivalDate: type: string format: date lines: type: array minItems: 1 items: $ref: '#/components/schemas/ReceiptLineRequest' ReceiptLine: type: object properties: lineId: type: string itemId: type: string expectedQuantity: type: number receivedQuantity: type: number uom: type: string lotNumber: type: string expirationDate: type: string format: date ReceiptLineRequest: type: object required: - itemId - expectedQuantity properties: itemId: type: string expectedQuantity: type: number uom: type: string lotNumber: type: string ReceiptListResponse: type: object properties: receipts: type: array items: $ref: '#/components/schemas/Receipt' totalCount: type: integer WarehouseInventoryRecord: type: object properties: itemId: type: string facilityId: type: string locationId: type: string locationName: type: string lotNumber: type: string onHandQuantity: type: number allocatedQuantity: type: number availableQuantity: type: number uom: type: string expirationDate: type: string format: date updatedAt: type: string format: date-time WarehouseInventoryResponse: type: object properties: records: type: array items: $ref: '#/components/schemas/WarehouseInventoryRecord' totalCount: type: integer OutboundOrder: type: object properties: orderId: type: string externalOrderId: type: string facilityId: type: string status: type: string enum: [released, picking, packing, ready_to_ship, shipped] shipToAddress: $ref: '#/components/schemas/ShipAddress' lines: type: array items: $ref: '#/components/schemas/OutboundLine' waveId: type: string carrier: type: string trackingNumber: type: string shippedAt: type: string format: date-time OutboundOrderCreateRequest: type: object required: - facilityId - shipToAddress - lines properties: externalOrderId: type: string facilityId: type: string shipToAddress: $ref: '#/components/schemas/ShipAddress' requestedShipDate: type: string format: date carrier: type: string lines: type: array minItems: 1 items: type: object required: - itemId - quantity properties: itemId: { type: string } quantity: { type: number } uom: { type: string } OutboundLine: type: object properties: lineId: type: string itemId: type: string orderedQuantity: type: number pickedQuantity: type: number shippedQuantity: type: number uom: type: string status: type: string OutboundOrderListResponse: type: object properties: orders: type: array items: $ref: '#/components/schemas/OutboundOrder' totalCount: type: integer ShipmentConfirmRequest: type: object required: - carrier - trackingNumber properties: carrier: type: string trackingNumber: type: string shippedAt: type: string format: date-time weight: type: number weightUom: type: string ShipAddress: type: object properties: name: type: string street1: type: string street2: type: string city: type: string state: type: string postalCode: type: string country: type: string phone: type: string Transfer: type: object properties: transferId: type: string fromLocationId: type: string toLocationId: type: string facilityId: type: string lines: type: array items: type: object properties: itemId: { type: string } quantity: { type: number } lotNumber: { type: string } status: type: string enum: [pending, in_progress, completed] createdAt: type: string format: date-time TransferRequest: type: object required: - facilityId - fromLocationId - toLocationId - lines properties: facilityId: type: string fromLocationId: type: string toLocationId: type: string lines: type: array minItems: 1 items: type: object required: - itemId - quantity properties: itemId: { type: string } quantity: { type: number } lotNumber: { type: string } ErrorResponse: type: object properties: code: type: string message: type: string tags: - name: Inbound description: ASN and receipt management - name: Inventory description: Warehouse inventory positions and transfers - name: Outbound description: Outbound order fulfillment and shipment