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

# Send 846 Inventory Advice (Brand)

> Brand-side variant of the inventory endpoint. Share your current on-hand inventory for your brand and we'll generate and transmit an 846 Inventory Advice document to each retailer your brand is set up to receive inventory updates from, across every organization you're connected to.



## OpenAPI

````yaml /openapi.json post /api/v1/inventory/brand
openapi: 3.0.0
info:
  title: Authentication API
  description: API for user authentication and token generation
  version: 1.0.0
servers:
  - url: https://api.retailreadyai.com
    description: Production server
  - url: https://stg.retailreadyai.com
    description: Staging server
security: []
paths:
  /api/v1/inventory/brand:
    post:
      tags:
        - Inventory
      summary: Send 846 Inventory Advice (Brand)
      description: >-
        Brand-side variant of the inventory endpoint. Share your current on-hand
        inventory for your brand and we'll generate and transmit an 846
        Inventory Advice document to each retailer your brand is set up to
        receive inventory updates from, across every organization you're
        connected to.
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  description: >-
                    A complete snapshot of on-hand inventory for this brand.
                    Include every SKU you stock,  any SKU you omit will not
                    appear on the documents sent to retailers. Required field,
                    between 1 and 1000 entries per request, and SKUs must be
                    unique within the request.
                  minItems: 1
                  maxItems: 1000
                  items:
                    type: object
                    properties:
                      sku:
                        type: string
                        description: Stock Keeping Unit
                        example: PILLOW-01
                      available_quantity:
                        type: integer
                        minimum: 0
                        description: Available on-hand quantity for this SKU. Must be >= 0.
                        example: 120
                    required:
                      - sku
                      - available_quantity
              required:
                - items
            example:
              items:
                - sku: PILLOW-01
                  available_quantity: 120
                - sku: PILLOW-02
                  available_quantity: 0
      responses:
        '200':
          description: >-
            846 inventory advice sent successfully for every connected
            organization. Each entry in results carries an organization_id and
            organization_name so you can attribute the outcome.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 846 inventory advice sent successfully
                  data:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/BrandInventoryAdviceResult'
                      summary:
                        $ref: '#/components/schemas/InventoryAdviceSummary'
              example:
                message: 846 inventory advice sent successfully
                data:
                  results:
                    - organization_id: 8a47e0d6-4f12-4a9e-9c6a-2d3f9e0b8a01
                      edi_config_id: 1f2c1c4b-3d40-4e2c-8a8a-39d1e0a4cc11
                      retailer_id: 7eab3720-1944-4b01-aea6-972492f017e5
                      retailer_name: Target
                      brand_name: Acme Outdoor
                      organization_name: Acme Holdings
                      success: true
                      edi_transaction_id: f2a73e8b-3c8b-4f1e-a4d2-1c2cda30c6e9
                      error: null
                      failed_skus: null
                    - organization_id: 5d92aa31-7b6e-4d52-b0c8-1e44f7c2b9d2
                      edi_config_id: 9b4f1d2e-7a3c-4e5b-8f9a-12cd34ef5678
                      retailer_id: 7eab3720-1944-4b01-aea6-972492f017e5
                      retailer_name: Target
                      brand_name: Acme Apparel
                      organization_name: Acme Apparel Co
                      success: true
                      edi_transaction_id: ab12cd34-ef56-7890-ab12-cd34ef567890
                      error: null
                      failed_skus: null
                  summary:
                    total: 2
                    succeeded: 2
                    failed: 0
        '207':
          description: >-
            846 inventory advice partially completed: at least one organization
            outcome succeeded and at least one failed. Inspect each entry in
            results to see which one succeeded, which failed, and why. An
            organization with no 846-enabled config surfaces here as a
            placeholder entry with edi_config_id, retailer_id, and retailer_name
            set to null.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: >-
                      846 inventory advice partially completed: 1 succeeded, 1
                      failed
                  data:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/BrandInventoryAdviceResult'
                      summary:
                        $ref: '#/components/schemas/InventoryAdviceSummary'
              example:
                message: >-
                  846 inventory advice partially completed: 1 succeeded, 1
                  failed
                data:
                  results:
                    - organization_id: 8a47e0d6-4f12-4a9e-9c6a-2d3f9e0b8a01
                      edi_config_id: 1f2c1c4b-3d40-4e2c-8a8a-39d1e0a4cc11
                      retailer_id: 7eab3720-1944-4b01-aea6-972492f017e5
                      retailer_name: Target
                      brand_name: Acme Outdoor
                      organization_name: Acme Holdings
                      success: true
                      edi_transaction_id: f2a73e8b-3c8b-4f1e-a4d2-1c2cda30c6e9
                      error: null
                      failed_skus: null
                    - organization_id: 5d92aa31-7b6e-4d52-b0c8-1e44f7c2b9d2
                      edi_config_id: null
                      retailer_id: null
                      retailer_name: null
                      brand_name: null
                      organization_name: null
                      success: false
                      edi_transaction_id: null
                      error: >-
                        No EDI configs with 846 inventory advice enabled for
                        this brand and facility
                      failed_skus: null
                  summary:
                    total: 2
                    succeeded: 1
                    failed: 1
        '400':
          description: >-
            Request body failed validation (missing `items`, empty list, more
            than 1000 items, duplicate SKUs, or negative `available_quantity`).
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: INVALID_REQUEST
                      details:
                        type: string
                        example: 'items: Duplicate SKUs are not allowed'
              example:
                message: Invalid request body
                error:
                  code: INVALID_REQUEST
                  details: 'items: At least 1 item required'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
              example:
                message: Authentication failed
                error:
                  code: UNAUTHORIZED
        '403':
          description: >-
            Authenticated user is not a brand admin. Only brand admin users can
            call this endpoint.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: UNAUTHORIZED
              example:
                message: Unauthorized
                error:
                  code: UNAUTHORIZED
        '404':
          description: >-
            The authenticated brand has no associated facilities, so there is
            nothing to fan the 846 out to.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: NOT_FOUND
              example:
                message: No facilities associated with this brand
                error:
                  code: NOT_FOUND
        '422':
          description: >-
            Every aggregated organization outcome failed — including the case
            where one or more connected organizations have no 846-enabled config
            and the rest fail to transmit. The body shape matches 200 / 207:
            inspect results for the per-organization breakdown.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 846 inventory advice failed for all configs
                  data:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/BrandInventoryAdviceResult'
                      summary:
                        $ref: '#/components/schemas/InventoryAdviceSummary'
              example:
                message: 846 inventory advice failed for all configs
                data:
                  results:
                    - organization_id: 8a47e0d6-4f12-4a9e-9c6a-2d3f9e0b8a01
                      edi_config_id: 1f2c1c4b-3d40-4e2c-8a8a-39d1e0a4cc11
                      retailer_id: 7eab3720-1944-4b01-aea6-972492f017e5
                      retailer_name: Target
                      brand_name: Acme Outdoor
                      organization_name: Acme Holdings
                      success: false
                      edi_transaction_id: null
                      error: '502: Upstream EDI partner unavailable'
                      failed_skus: null
                    - organization_id: 5d92aa31-7b6e-4d52-b0c8-1e44f7c2b9d2
                      edi_config_id: null
                      retailer_id: null
                      retailer_name: null
                      brand_name: null
                      organization_name: null
                      success: false
                      edi_transaction_id: null
                      error: >-
                        No EDI configs with 846 inventory advice enabled for
                        this brand and facility
                      failed_skus: null
                  summary:
                    total: 2
                    succeeded: 0
                    failed: 2
        '500':
          description: Unhandled server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: INTERNAL_SERVER_ERROR
              example:
                message: Internal server error
                error:
                  code: INTERNAL_SERVER_ERROR
      security:
        - bearerAuth: []
components:
  schemas:
    BrandInventoryAdviceResult:
      type: object
      description: >-
        Outcome of generating and transmitting an 846 Inventory Advice document
        for a single (organization, EDI config) pair when fanning out across all
        organizations associated with a brand. When an organization has no
        matching 846-enabled config, a single placeholder entry is returned for
        that organization with edi_config_id, retailer_id, and all *_name fields
        set to null.
      properties:
        organization_id:
          type: string
          format: uuid
          description: UUID of the organization this outcome belongs to
        edi_config_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID of the EDI config this result belongs to. Null when this
            organization has no matching 846-enabled config.
        retailer_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID of the retailer associated with the EDI config. Null when this
            organization has no matching 846-enabled config.
        retailer_name:
          type: string
          nullable: true
          description: Display name of the retailer (best-effort lookup; may be null)
        brand_name:
          type: string
          nullable: true
          description: Display name of the brand (best-effort lookup; may be null)
        organization_name:
          type: string
          nullable: true
          description: Display name of the organization (best-effort lookup; may be null)
        success:
          type: boolean
          description: >-
            Whether the 846 was generated and transmitted successfully for this
            entry
        edi_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            UUID of the persisted EdiTransaction record. Present only on
            success.
        error:
          type: string
          nullable: true
          description: Human-readable error string when success is false; null on success.
        failed_skus:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            SKUs that could not be included in the 846 (e.g. missing item-master
            data). Null if not applicable.
    InventoryAdviceSummary:
      type: object
      description: Counts across the per-config results in this response.
      properties:
        total:
          type: integer
          description: Total number of EDI configs processed (succeeded + failed)
        succeeded:
          type: integer
          description: Number of EDI configs for which the 846 was sent successfully
        failed:
          type: integer
          description: Number of EDI configs for which the 846 failed
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````