# Book Inbound Delivery ## Book an Inbound Delivery ### 📌 Description This endpoint allows you to book an inbound delivery to a warehouse. The system handles the complete lifecycle of inbound deliveries from booking to goods receipt. ### 🔹 Use Cases - Scheduling warehouse deliveries for inventory restocking - Booking collection slots for pickup from suppliers - Managing inbound logistics with proper documentation - Tracking delivery status through the fulfillment system ### 📋 Required Information - Booking ID: Unique identifier for the delivery booking (optional - auto-generated if not provided) - Warehouse Code: Target warehouse for the delivery - Time Slot: Start and end times for the delivery window - Attendees: List of people who will be present for the delivery - Items: List of products being delivered with quantities ### 📄 Optional Information - Pickup Details: If collection is required from a supplier - Documents: Supporting files like invoices or manifests - Custom Labels: Human-readable slot identifiers Endpoint: POST /api/fulfilment/inbound/book Version: 1.0.0 Security: OAuth2 ## Request fields (application/json): - `attendees` (array, required) Required: At least one attendee must be specified - `documents` (array) Optional: Supporting documents like invoices, manifests, etc. - `documents.document_type` (string, required) Required: Type of document being uploaded - `documents.file_name` (string, required) Required: Original filename - `documents.file_size` (integer) Optional: File size for validation - `documents.file_url` (string, required) Required: Accessible URL to the document - `documents.mime_type` (string) Optional: MIME type for proper handling - `items` (array, required) Required: At least one item must be specified - `items.batch_number` (string) Optional: For tracking specific batches - `items.expiry_date` (string) Optional: For perishable items - `items.manufacturing_date` (string) Optional: For tracking item age - `items.quantity` (integer, required) Required: Must be greater than 0 - `items.sku` (string, required) Required: Must be a valid SKU - `items.unit_price` (number, required) Required: For cost tracking purposes - `items.uom` (string) Optional: Standard unit like "kg", "pieces", etc. - `items.uom_units` (integer) Optional: How many units make up the UOM - `pickup_address` (object) - `pickup_address.address1` (string, required) Required: Full street address - `pickup_address.address2` (string) Optional: Building, floor, suite, etc. - `pickup_address.city` (string, required) Required: City where pickup is located - `pickup_address.coordinate` (object) Optional: Latitude and longitude - `pickup_address.coordinate.latitude` (number, required) - `pickup_address.coordinate.longitude` (number, required) - `pickup_address.country` (string, required) Required: Full country name - `pickup_address.country_code` (string, required) Required: Two-letter country code - `pickup_address.landmark` (string) Optional: Nearby landmark for easier identification - `pickup_address.name` (string, required) Required: Business name or location identifier - `pickup_address.postcode` (string) Optional: ZIP or postal code - `pickup_address.state` (string) Optional: State or province name - `pickup_contact` (object) - `pickup_contact.company` (string) Optional: Company the contact person works for - `pickup_contact.email` (string) Optional: Email for additional communication - `pickup_contact.instructions` (string) Optional: Any special instructions for the pickup - `pickup_contact.name` (string, required) Required: Name of the person to contact - `pickup_contact.phone` (string, required) Required: Must be in E.164 format - `slot_end_at` (string, required) Required: Must be after slot\_start\_at - `slot_start_at` (string, required) Required: Must be a valid future timestamp - `warehouse_code` (string, required) Required: Must be a valid warehouse code ## Response 200 fields (application/json): - `asn_id` (string) Optional: Generated ASN ID for warehouse systems - `inbound_id` (string, required) Generated by the system - `status` (string, required) ## Response default fields (application/json): - `code` (string) Error code Example: "not_found" - `details` (object) Error details - `message` (string) Error message