{"openapi":"3.1.0","info":{"title":"POST /api/v1/purchase-orders/{id}/submit","version":"1.0.0","description":"Submit purchase order"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/purchase-orders/{id}/submit":{"post":{"tags":["purchase-orders"],"summary":"Submit purchase order","description":"Transition PO to 'submitted' and create a forecasted bill.","operationId":"submit_order_api_v1_purchase_orders__id__submit_post","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-business-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Business-Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderResponse"}}}},"400":{"description":"Bad Request - Invalid input","content":{"application/json":{"example":{"detail":"Invalid request parameters"}}}},"401":{"description":"Unauthorized - Authentication required","content":{"application/json":{"example":{"detail":"Not authenticated"}}}},"403":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"example":{"detail":"Not enough permissions"}}}},"404":{"description":"Not Found - Resource does not exist","content":{"application/json":{"example":{"detail":"Resource not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Fee":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Fee name (e.g., 'Shipping', 'Handling')."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Fee description (alternative to name)."},"amount":{"type":"integer","title":"Amount","description":"Fee amount in cents."}},"type":"object","required":["amount"],"title":"Fee","description":"Additional fee on an inventory order.\n\nUsed for shipping, handling, customs, or other charges.\nAmount is in cents.","example":{"amount":5000,"name":"Shipping"}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OrderResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Order UUID."},"vendor_id":{"type":"string","title":"Vendor Id","description":"Vendor UUID."},"vendor_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Name","description":"Vendor name (resolved)."},"vendor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Email","description":"Vendor email (resolved)."},"status":{"type":"string","title":"Status","description":"Order status."},"name":{"type":"string","title":"Name","description":"Order name."},"business_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Id","description":"Business UUID."},"po_number":{"type":"string","title":"Po Number","description":"Purchase order number."},"line_items":{"items":{},"type":"array","title":"Line Items","description":"Order line items."},"fees":{"items":{"$ref":"#/components/schemas/Fee"},"type":"array","title":"Fees","description":"Additional fees."},"payments":{"items":{"$ref":"#/components/schemas/Payment-Output"},"type":"array","title":"Payments","description":"Payment records."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Order notes."},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Total amount in cents."},"balance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance","description":"Remaining balance in cents."},"shipments":{"items":{},"type":"array","title":"Shipments","description":"Associated shipments."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation timestamp."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Last update timestamp."},"version":{"type":"integer","title":"Version","description":"Version for optimistic locking.","default":1},"shipping_cost":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shipping Cost","description":"Freight/shipping cost in cents."},"ship_from_location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ship From Location Id","description":"Source location UUID."},"ship_to_location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ship To Location Id","description":"Destination location UUID."},"ship_from_location_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ship From Location Name","description":"Resolved source location name."},"ship_to_location_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ship To Location Name","description":"Resolved destination location name."},"production_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Production Run Id","description":"Linked production run UUID."},"transfer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Id","description":"Linked inventory transfer UUID."},"expected_delivery_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expected Delivery Date","description":"Expected delivery date."},"payment_term_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Term Id","description":"Payment term UUID for net terms."},"payment_term_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Term Name","description":"Resolved payment term name (e.g., 'Net 30')."},"payment_term_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Payment Term Days","description":"Days until due from the payment term."},"expected_paid_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expected Paid On","description":"Expected payment date."},"bill_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill Id","description":"UUID of the Bill linked to this PO, if any."},"bill_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bill Status","description":"Status of the linked bill: forecasted, received, partially_paid, paid, draft, or canceled."},"bill_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bill Amount","description":"Linked bill amount in cents."},"bill_received_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Bill Received On","description":"Timestamp the linked bill was marked received from the vendor."},"bill_paid_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Bill Paid On","description":"Timestamp the linked bill was marked fully paid."}},"additionalProperties":true,"type":"object","required":["id","vendor_id","status","name","po_number","line_items","fees","payments","created_at","updated_at"],"title":"OrderResponse","description":"Response schema for an inventory order.\n\nIncludes all order details, line items, fees, payments,\nand related shipments.","example":{"balance":125000,"bill_amount":125000,"bill_id":"019ab37c-bill-7000-8000-000000000001","bill_status":"forecasted","created_at":"2024-01-10T10:30:00Z","expected_delivery_date":"2024-01-25","expected_paid_on":"2024-02-24","fees":[{"amount":5000,"name":"Shipping"}],"id":"019ab37c-ord1-7000-8000-000000000001","line_items":[],"name":"January Inventory Restock","payment_term_days":30,"payment_term_id":"019ab37c-term-7000-8000-000000000001","payment_term_name":"Net 30","payments":[],"po_number":"PO-2024-001","shipments":[],"status":"submitted","total":125000,"updated_at":"2024-01-15T14:00:00Z","vendor_email":"orders@acmesupplies.com","vendor_id":"019ab37c-vend-7000-8000-000000000001","vendor_name":"Acme Supplies","version":1}},"Payment-Output":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Payment UUID."},"paid_on":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid On","description":"Payment date."},"date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Date","description":"Payment date (alias for paid_on)."},"amount":{"type":"integer","title":"Amount","description":"Payment amount in cents."},"inventory_order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inventory Order Id","description":"Parent order UUID."},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Payment method (e.g., 'check', 'wire', 'credit_card')."}},"type":"object","required":["amount"],"title":"Payment","description":"Payment record for an inventory order.\n\nTracks payments made to vendors for purchase orders.\nAmount is in cents.","example":{"amount":50000,"method":"wire","paid_on":"2024-01-15T00:00:00Z"}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}