> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joinluminous.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Book a freight quote

> Book one of the shipment's quotes with the carrier. **This creates a real carrier pickup that cannot
be cancelled from Luminous.** Booking the same record twice is refused (`409`), as is a quote that is
not on the record or whose carrier failed to rate (`422`).

Booking creates (or, for a self-arranged 3PL order, records on the freight record) the Luminous
shipment with the BOL, PRO and tracking references; `shipment_id` is that shipment, or `null` when
the references live on the freight record only. `lum_status` sets the Luminous shipment's status —
`shipped` (default) or `pending`.




## OpenAPI

````yaml /api-reference/build.yaml post /freight/shipments/{metadataId}/book
openapi: 3.0.0
info:
  title: Luminous API
  version: 1.0.0
  description: API documentation for Luminous
servers:
  - url: https://{companyName}.api.joinluminous.com/external/api/v1
    variables:
      companyName:
        default: companyName
        description: Your company-specific subdomain
security: []
tags:
  - name: Products
    description: Get and manage products
  - name: Pricing
    description: Manage price schedules, levels, and customizations
  - name: BOMs
    description: Manage Bills of Materials (BOMs)
  - name: Labels
    description: Label rendering via Labelary ZPL service
  - name: Companies
    description: Manage business accounts and their associated data
  - name: Contacts
    description: Manage contact information for individuals
  - name: Suppliers
    description: Manage suppliers (factories) — vendors used on purchase orders
  - name: Supplier SKUs
    description: Manage per-supplier SKU and unit-cost overrides for products
  - name: Locations
    description: Manage warehouses and locations
  - name: Inventory
    description: Get and adjust product stock levels
  - name: Lots
    description: Create, update, and delete product lots (batches)
  - name: Transfer Orders
    description: Manage transfer orders
  - name: Fulfillment Orders
    description: Manage fulfillment orders and picklists
  - name: Freight
    description: >-
      Freightview LTL freight — quotes, booking and documents for fulfillment
      orders
  - name: Fulfillment Priority Lists
    description: Configure fulfillment routing priority lists
  - name: Purchase Orders
    description: Get and modify purchase orders
  - name: Supplier Portal
    description: >-
      Read a supplier's response to a purchase order and control the one-click
      portal link
  - name: Receiving Reports
    description: Manage receiving reports
  - name: Payment Obligations
    description: Manage payment obligations for purchase orders
  - name: Sales Orders
    description: Manage sales orders and sales order shipments
  - name: Purgatory
    description: >-
      Inspect and resolve non-posted sales orders in the purgatory staging
      workflow
  - name: PickFlow Warehouse
    description: >-
      Warehouse-floor lookups for PickFlow — barcode resolution, bin and product
      stock, bin search, and receivables
  - name: PickFlow Shipping
    description: >-
      Provider-agnostic shipping rates, services, packages, and label purchase
      for PickFlow
  - name: Cycle Counts
    description: >-
      Create, drive, and post PickFlow cycle counts — batches, per-warehouse
      sessions, and CSV import/export
  - name: Print Stations
    description: List paired print stations and enqueue print jobs to them
  - name: Invoices
    description: Get and manage invoices
  - name: Work Orders
    description: >-
      Manage work orders — production lifecycle, steps, materials, links,
      shipments, and comments
  - name: Production Batches
    description: Group and manage work orders as production batches
  - name: Bills
    description: >-
      Accounts payable bill management, payments, attachments, allocations, and
      variance
  - name: Prepayments
    description: Manage vendor prepayments and applications
  - name: Vendor Credits
    description: Manage vendor credits and applications
  - name: Vendor Returns
    description: Manage vendor returns and credit generation
  - name: Customer Returns
    description: Manage customer returns (sales returns), receiving, and restock behavior
  - name: Stock Snapshot
    description: Point-in-time stock snapshots with export support
  - name: Consumption
    description: Consumption reports and exports
  - name: Inventory Aging
    description: Cost-layer-based inventory aging reports
  - name: Bills Reports
    description: Accounts payable bills aging reports
  - name: Forecast
    description: Materialized forecast data
  - name: Reports
    description: Close the books, inventory discrepancy, transaction COGS, and EDI reports
  - name: Tags
    description: Add/remove tags across various resources
  - name: Custom Fields
    description: Get and set custom fields across various resources
  - name: Currency
    description: Currency configuration, exchange rates, and conversion
  - name: Drive
    description: >
      Browse, upload, tag and manage files in your Luminous Drive. An API token
      sees the shared

      drive only, never My Files or restricted folders and files. Every write
      and download made

      through the API is recorded in the file's activity log (`GET
      /file-cabinet/files/{id}/activity`)

      with `actor_kind: api_token`.
  - name: Integration Mappings
    description: Manage integration mappings for external systems
  - name: Integration Field Mappings
    description: Manage field-level mappings between Luminous and external systems
  - name: Automations
    description: Create, test, and inspect automation rules and their runs
paths:
  /freight/shipments/{metadataId}/book:
    post:
      tags:
        - Freight
      summary: Book a freight quote
      description: >
        Book one of the shipment's quotes with the carrier. **This creates a
        real carrier pickup that cannot

        be cancelled from Luminous.** Booking the same record twice is refused
        (`409`), as is a quote that is

        not on the record or whose carrier failed to rate (`422`).


        Booking creates (or, for a self-arranged 3PL order, records on the
        freight record) the Luminous

        shipment with the BOL, PRO and tracking references; `shipment_id` is
        that shipment, or `null` when

        the references live on the freight record only. `lum_status` sets the
        Luminous shipment's status —

        `shipped` (default) or `pending`.
      operationId: bookFreightShipment
      parameters:
        - in: path
          name: metadataId
          required: true
          schema:
            type: integer
          description: Freight shipment record ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - quote_id
              properties:
                quote_id:
                  type: string
                  description: The quote's `providerQuoteId`.
                schedule_pickup:
                  type: boolean
                  default: true
                  description: Ask the carrier to schedule the pickup.
                lum_status:
                  type: string
                  enum:
                    - shipped
                    - pending
                  default: shipped
                  description: Status of the Luminous shipment created by the booking.
            example:
              quote_id: q-3
              lum_status: shipped
      responses:
        '200':
          description: Booked
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      freight_shipment:
                        type: object
                        description: >
                          A Freightview freight shipment record ("metadata") for
                          a fulfillment order: the quote session and, once

                          booked, the booking references. Field names are
                          camelCase. `quotes` and `documents` are present when
                          loaded

                          (single-record and fulfillment-order reads load
                          `quotes`).
                        properties:
                          id:
                            type: integer
                            description: >-
                              Freight shipment record ID — the `metadataId` in
                              `/freight/shipments/{metadataId}` routes.
                          provider:
                            type: string
                            example: freightview
                          providerShipmentId:
                            type: string
                            nullable: true
                            description: Freightview's shipment ID.
                          shipstationShipmentId:
                            type: integer
                            nullable: true
                            description: >-
                              The Luminous shipment created by booking, or
                              `null` before booking (and for self-arranged 3PL
                              bookings, where the references below live on this
                              record instead).
                          fulfillmentOrderId:
                            type: integer
                          appIntegrationAccountId:
                            type: integer
                            description: The Freightview integration account used.
                          providerStatus:
                            type: string
                            nullable: true
                            description: >-
                              Freightview's shipment status; refresh with `POST
                              /freight/shipments/{metadataId}/sync-status`.
                          selectedQuoteId:
                            type: string
                            nullable: true
                            description: '`providerQuoteId` of the booked quote.'
                          pickupConfirmation:
                            type: string
                            nullable: true
                          bolNumber:
                            type: string
                            nullable: true
                          proNumber:
                            type: string
                            nullable: true
                          carrierScac:
                            type: string
                            nullable: true
                          trackingNumber:
                            type: string
                            nullable: true
                          serviceCode:
                            type: string
                            nullable: true
                          shipmentCost:
                            type: number
                            nullable: true
                          pickupDate:
                            type: string
                            format: date
                            nullable: true
                          pickupWindowStart:
                            type: string
                            nullable: true
                            description: 24-hour `HH:MM`.
                          pickupWindowEnd:
                            type: string
                            nullable: true
                            description: 24-hour `HH:MM`.
                          errorMessage:
                            type: string
                            nullable: true
                            description: Last provider error, if any.
                          bookedAt:
                            type: string
                            format: date-time
                            nullable: true
                            description: >-
                              `null` while the record is still an open quote
                              session.
                          pollingStatus:
                            type: string
                            nullable: true
                            description: >-
                              Rating progress — `completed` once all carriers
                              have answered.
                          pollingStartedAt:
                            type: string
                            format: date-time
                            nullable: true
                          pollingCompletedAt:
                            type: string
                            format: date-time
                            nullable: true
                          originAddress:
                            type: object
                            nullable: true
                            additionalProperties: true
                          destinationAddress:
                            type: object
                            nullable: true
                            additionalProperties: true
                          freightItems:
                            type: array
                            nullable: true
                            description: The handling units that were quoted.
                            items:
                              type: object
                              additionalProperties: true
                          originLocationType:
                            type: string
                            nullable: true
                            enum:
                              - business_dock
                              - business_no_dock
                              - residential
                          destinationLocationType:
                            type: string
                            nullable: true
                            enum:
                              - business_dock
                              - business_no_dock
                              - residential
                          destinationAccessorials:
                            type: array
                            items:
                              type: string
                            nullable: true
                          createdAt:
                            type: string
                            format: date-time
                          updatedAt:
                            type: string
                            format: date-time
                          quotes:
                            type: array
                            description: >-
                              Present when loaded. Carriers that failed to rate
                              are listed last with status error.
                            items:
                              type: object
                              description: >-
                                One carrier rate on a freight shipment. Field
                                names are camelCase.
                              properties:
                                id:
                                  type: integer
                                providerQuoteId:
                                  type: string
                                  description: >-
                                    Freightview's quote ID — the value to send
                                    as `quote_id` when booking.
                                carrier:
                                  type: string
                                  nullable: true
                                carrierScac:
                                  type: string
                                  nullable: true
                                service:
                                  type: string
                                  nullable: true
                                price:
                                  type: number
                                  nullable: true
                                  description: >-
                                    Quoted price. A carrier that failed to rate
                                    is stored as a 0 price with status error —
                                    do not book it.
                                transitDaysMin:
                                  type: integer
                                  nullable: true
                                transitDaysMax:
                                  type: integer
                                  nullable: true
                                isSelected:
                                  type: boolean
                                  nullable: true
                                  description: True on the quote that was booked.
                                isAppointment:
                                  type: boolean
                                  nullable: true
                                expiresAt:
                                  type: string
                                  format: date-time
                                  nullable: true
                                status:
                                  type: string
                                  nullable: true
                                  description: >-
                                    Freightview's rate status, e.g. `active`, or
                                    `error` when the carrier failed to rate.
                                errors:
                                  type: array
                                  description: >-
                                    Carrier error messages when `status` is
                                    `error`; empty otherwise.
                                  items:
                                    type: string
                          documents:
                            type: array
                            description: >-
                              Present when loaded. Prefer `GET
                              /freight/shipments/{metadataId}/documents`.
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                documentType:
                                  type: string
                                fileName:
                                  type: string
                                  nullable: true
                                fileUrl:
                                  type: string
                                  nullable: true
                                providerUrl:
                                  type: string
                                  nullable: true
                                mimeType:
                                  type: string
                                  nullable: true
                      shipment_id:
                        type: integer
                        nullable: true
                        description: >-
                          The Luminous shipment created by the booking, or
                          `null` for a self-arranged 3PL booking.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '404':
          description: Freight shipment not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '409':
          description: >-
            The freight shipment is already booked, or a booking is already in
            progress
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              example:
                message: This freight shipment is already booked.
        '422':
          description: >-
            Missing `quote_id`, the quote is not on this shipment, its carrier
            failed to rate, or Freightview refused the booking
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
              example:
                message: This carrier failed to rate; choose another quote.
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Authenticate using a bearer token. To create a token, navigate to
        /settings/api-tokens and click Create API Token.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.