openapi: 3.1.0 info: title: Manhattan Active Omni Order Management Inbound Orders API description: Manhattan Active Omni APIs enable omnichannel order management and fulfillment, including order promising, order orchestration, inventory availability, and customer service operations for retail and distribution. 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 servers: - url: https://api.developer.manh.com/omni/v1 description: Manhattan Active Omni REST API security: - OAuth2ClientCredentials: [] tags: - name: Orders description: Order lifecycle and management paths: /orders: get: operationId: listOrders summary: List orders description: Retrieve a paginated list of orders. Supports filtering by status, customer, channel, and date range. tags: - Orders parameters: - name: status in: query schema: type: string enum: - created - allocated - released - shipped - delivered - cancelled - returned - name: customerId in: query schema: type: string - name: channelId in: query schema: type: string - name: orderDateFrom in: query schema: type: string format: date-time - name: orderDateTo in: query schema: type: string format: date-time - name: limit in: query schema: type: integer default: 50 maximum: 500 - name: offset in: query schema: type: integer default: 0 responses: '200': description: List of orders content: application/json: schema: $ref: '#/components/schemas/OrderListResponse' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createOrder summary: Create an order description: Submit a new customer order for orchestration. The system performs inventory availability checking and assigns fulfillment nodes. tags: - Orders requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderCreateRequest' responses: '201': description: Order created content: application/json: schema: $ref: '#/components/schemas/Order' '400': $ref: '#/components/responses/BadRequest' '422': description: Order validation failed (inventory, address, etc.) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /orders/{orderId}: get: operationId: getOrder summary: Get an order description: Retrieve full details of an order including line items, fulfillment assignments, and shipments. tags: - Orders parameters: - name: orderId in: path required: true schema: type: string responses: '200': description: Order details content: application/json: schema: $ref: '#/components/schemas/Order' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateOrder summary: Update an order description: Modify an open order (add/remove lines, change quantities, update addresses). tags: - Orders parameters: - name: orderId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderUpdateRequest' responses: '200': description: Order updated content: application/json: schema: $ref: '#/components/schemas/Order' /orders/{orderId}/cancel: post: operationId: cancelOrder summary: Cancel an order description: Cancel an order or specific order lines. tags: - Orders parameters: - name: orderId in: path required: true schema: type: string requestBody: content: application/json: schema: type: object properties: reason: type: string lineIds: type: array items: type: string description: Specific line IDs to cancel (omit to cancel entire order) responses: '200': description: Cancellation processed content: application/json: schema: $ref: '#/components/schemas/Order' components: schemas: OrderTotals: type: object properties: subtotal: type: number taxTotal: type: number shippingTotal: type: number discountTotal: type: number orderTotal: type: number currency: type: string default: USD Fulfillment: type: object properties: fulfillmentId: type: string type: type: string enum: - ship_from_store - ship_from_dc - in_store_pickup - curbside_pickup nodeId: type: string nodeName: type: string status: type: string trackingNumber: type: string carrier: type: string estimatedDeliveryDate: type: string format: date shippedAt: type: string format: date-time Address: type: object required: - street1 - city - state - postalCode - country properties: firstName: type: string lastName: type: string street1: type: string street2: type: string city: type: string state: type: string postalCode: type: string country: type: string phone: type: string Order: type: object properties: orderId: type: string externalOrderId: type: string description: Customer or channel order number status: type: string enum: - created - allocated - released - shipped - delivered - cancelled - returned channelId: type: string customerId: type: string orderDate: type: string format: date-time requiredDeliveryDate: type: string format: date shippingAddress: $ref: '#/components/schemas/Address' lines: type: array items: $ref: '#/components/schemas/OrderLine' totals: $ref: '#/components/schemas/OrderTotals' fulfillments: type: array items: $ref: '#/components/schemas/Fulfillment' createdAt: type: string format: date-time updatedAt: type: string format: date-time OrderCreateRequest: type: object required: - channelId - customerId - shippingAddress - lines properties: externalOrderId: type: string channelId: type: string customerId: type: string orderDate: type: string format: date-time requiredDeliveryDate: type: string format: date shippingAddress: $ref: '#/components/schemas/Address' lines: type: array minItems: 1 items: $ref: '#/components/schemas/OrderLineRequest' shippingMethod: type: string OrderLine: type: object properties: lineId: type: string externalLineId: type: string itemId: type: string sku: type: string description: type: string quantity: type: number unitPrice: type: number status: type: string enum: - open - allocated - released - shipped - delivered - cancelled fulfillmentNodeId: type: string ErrorResponse: type: object properties: code: type: string message: type: string details: type: array items: type: object properties: field: type: string message: type: string OrderLineRequest: type: object required: - itemId - quantity properties: externalLineId: type: string itemId: type: string sku: type: string quantity: type: number minimum: 1 unitPrice: type: number OrderListResponse: type: object properties: orders: type: array items: $ref: '#/components/schemas/Order' totalCount: type: integer limit: type: integer offset: type: integer OrderUpdateRequest: type: object properties: shippingAddress: $ref: '#/components/schemas/Address' requiredDeliveryDate: type: string format: date addLines: type: array items: $ref: '#/components/schemas/OrderLineRequest' removeLineIds: type: array items: type: string responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Invalid request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: OAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: https://auth.developer.manh.com/oauth2/token scopes: orders:read: Read order data orders:write: Create and modify orders inventory:read: Read inventory positions externalDocs: description: Manhattan Active Omni Developer Portal url: https://omni.developer.manh.com/