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

# Add barcode to a product missing one

> Sets the barcode, scan_barcode, and norm_barcode fields on a scraped_product that is missing a barcode. Used during receiving when scanning a physical product for the first time.



## OpenAPI

````yaml api-reference/v1/openapi.yaml patch /v1/receiving/products/{productId}/barcode
openapi: 3.1.0
info:
  title: Goods API
  version: 1.0.0
  description: >-
    API for Goods grocery operations - scanner app, admin dashboard, and
    customer features
  contact:
    name: Goods Team
    url: https://goods.app
servers:
  - url: http://localhost:3000
    description: Local development
  - url: https://dev.api.switchyard.run
    description: Development
  - url: https://api.switchyard.run
    description: Production
security: []
tags:
  - name: v1
    description: API v1 - unified domain-based endpoints
  - name: Scanner
    description: Scanner app endpoints for drivers and pickers
  - name: Sweeps
    description: Sweep management - retail store pickup operations
  - name: RFC Picks
    description: Ready-for-checkout picking operations
  - name: Inventory
    description: Inventory management and barcode lookup
  - name: Admin
    description: Admin dashboard endpoints
  - name: Orders
    description: Order management
  - name: Products
    description: Product catalog management
  - name: Notifications
    description: Push, email, SMS, and Slack notification management
paths:
  /v1/receiving/products/{productId}/barcode:
    patch:
      tags:
        - Sweeps
      summary: Add barcode to a product missing one
      description: >-
        Sets the barcode, scan_barcode, and norm_barcode fields on a
        scraped_product that is missing a barcode. Used during receiving when
        scanning a physical product for the first time.
      parameters:
        - schema:
            type: string
            format: uuid
            description: Scraped product ID
          required: true
          name: productId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                barcode:
                  type: string
                  minLength: 8
                  maxLength: 14
                  description: Raw barcode string (UPC-A, EAN-13, etc.)
                  example: 12345678901
              required:
                - barcode
      responses:
        '200':
          description: Barcode added successfully, or conflict detected requiring merge
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      success:
                        type: boolean
                        enum:
                          - true
                      barcode:
                        type: string
                      scan_barcode:
                        type: string
                      norm_barcode:
                        type: string
                    required:
                      - success
                      - barcode
                      - scan_barcode
                      - norm_barcode
                  - type: object
                    properties:
                      success:
                        type: boolean
                        enum:
                          - false
                      conflict:
                        type: boolean
                        enum:
                          - true
                      existing_product:
                        type: object
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                        required:
                          - id
                          - name
                      message:
                        type: string
                    required:
                      - success
                      - conflict
                      - existing_product
                      - message
        '400':
          description: Bad request (product already has barcode)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '404':
          description: Product not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error

````