> ## 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.

# Resolve a scanned barcode

> Returns **every** record a scanned code could refer to, rather than the first match, so the client can choose based on what the operator is doing (a code that is both a SKU and a bin name is the destination when moving stock, and the product when looking it up).

Match types (up to 10 per type): active products by SKU, UPC, or alternate SKU (alternate SKUs report the unit-conversion factor as `units_per_scan`); bins by exact name (scoped to `warehouse_id` when given, since bin names are only unique per warehouse); lots by lot number; purchase orders by alternate order number or `PO-{id}`; transfer orders by order number or `TO-{id}`; return orders and sales orders by order number; picklists by `PL-{id}`; pallets by the pallet ID printed on a Pallet ID label run (looked up only when the code is an 18-digit SSCC, a 20-digit GS1-128 read with the leading `00` application identifier, or `RR{receiving report id}-P{nn}`). An empty `matches` array means nothing matched.



## OpenAPI

````yaml /api-reference/build.yaml get /pickflow/scan/resolve
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:
  /pickflow/scan/resolve:
    get:
      tags:
        - PickFlow Warehouse
      summary: Resolve a scanned barcode
      description: >-
        Returns **every** record a scanned code could refer to, rather than the
        first match, so the client can choose based on what the operator is
        doing (a code that is both a SKU and a bin name is the destination when
        moving stock, and the product when looking it up).


        Match types (up to 10 per type): active products by SKU, UPC, or
        alternate SKU (alternate SKUs report the unit-conversion factor as
        `units_per_scan`); bins by exact name (scoped to `warehouse_id` when
        given, since bin names are only unique per warehouse); lots by lot
        number; purchase orders by alternate order number or `PO-{id}`; transfer
        orders by order number or `TO-{id}`; return orders and sales orders by
        order number; picklists by `PL-{id}`; pallets by the pallet ID printed
        on a Pallet ID label run (looked up only when the code is an 18-digit
        SSCC, a 20-digit GS1-128 read with the leading `00` application
        identifier, or `RR{receiving report id}-P{nn}`). An empty `matches`
        array means nothing matched.
      operationId: resolvePickflowScan
      parameters:
        - name: code
          in: query
          required: true
          schema:
            type: string
            maxLength: 255
          description: The scanned value.
        - name: product_codes[]
          in: query
          required: false
          schema:
            type: array
            maxItems: 5
            items:
              type: string
              maxLength: 255
          description: >-
            Extra product-code candidates to try for product matches only (e.g.
            the 12/13/14-digit forms of a GS1 GTIN). `code` is always included.
        - name: warehouse_id
          in: query
          required: false
          schema:
            type: integer
          description: Scope bin matches to this warehouse.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: The trimmed scanned code.
                  matches:
                    type: array
                    items:
                      type: object
                      description: >-
                        A typed match. Fields present depend on `type`:
                        `product` — product_id, sku, name, matched_by
                        (sku|upc|alternate_sku), units_per_scan, lot_tracked,
                        image_url; `bin` — location_id, name, warehouse_id,
                        warehouse_name; `lot` — lot_id, lot_number, product_id,
                        sku, expiry_date; `purchase_order` / `transfer_order` /
                        `return_order` — id, order_number, status; `sales_order`
                        — id, order_number, status, picking_status, picklist_id;
                        `picklist` — id, status; `pallet` — pallet_id, run_id,
                        receiving_report_id, reference, sequence, total,
                        contents.
                      properties:
                        type:
                          type: string
                          enum:
                            - product
                            - bin
                            - lot
                            - purchase_order
                            - transfer_order
                            - return_order
                            - sales_order
                            - picklist
                            - pallet
                        id:
                          type: integer
                        product_id:
                          type: integer
                        sku:
                          type: string
                        name:
                          type: string
                        matched_by:
                          type: string
                          enum:
                            - sku
                            - upc
                            - alternate_sku
                        units_per_scan:
                          type: number
                          description: >-
                            Units one scan represents (the alternate SKU's case
                            factor; 1 otherwise).
                        lot_tracked:
                          type: boolean
                        image_url:
                          type: string
                          nullable: true
                        location_id:
                          type: integer
                        warehouse_id:
                          type: integer
                        warehouse_name:
                          type: string
                          nullable: true
                        lot_id:
                          type: integer
                        lot_number:
                          type: string
                        expiry_date:
                          type: string
                          format: date
                          nullable: true
                        order_number:
                          type: string
                        status:
                          nullable: true
                          description: >-
                            Record status (string token or code, depending on
                            type).
                        picking_status:
                          nullable: true
                        picklist_id:
                          type: integer
                          nullable: true
                        pallet_id:
                          type: string
                          description: >-
                            The pallet ID barcode value (bare 18-digit SSCC, or
                            `RR{id}-P{nn}`).
                        run_id:
                          type: integer
                          description: The pallet label run that printed this pallet ID.
                        receiving_report_id:
                          type: integer
                          description: The receiving report the pallet belongs to.
                        reference:
                          type: string
                          description: >-
                            Receiving report reference,
                            `RR-{receiving_report_id}`.
                        sequence:
                          type: integer
                          description: Which pallet of the run this is (1-based).
                        total:
                          type: integer
                          description: Number of pallets in the run.
                        contents:
                          type: array
                          description: >-
                            What is on the pallet: the receiving report's lines
                            (or the single line, when the run was printed for
                            one receiving report line).
                          items:
                            type: object
                            properties:
                              product_id:
                                type: integer
                                nullable: true
                              sku:
                                type: string
                                nullable: true
                              name:
                                type: string
                                nullable: true
                              quantity:
                                type: number
                                description: >-
                                  Received quantity (falls back to the line
                                  quantity).
        '401':
          description: Authentication credentials were missing or invalid
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Unauthorized
                  message:
                    type: string
                    example: Authentication credentials are missing or invalid
                  status_code:
                    type: integer
                    example: 401
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
      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.