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

# Replace a guest cart using owned artwork

> Total quantity1..100. Artwork must be fully decoded and exactly5:7 or4:5 with rotation allowed. Responses are no-store. Caller prices, provider identifiers and payment methods are never accepted.



## OpenAPI

````yaml https://api.batchrelay.com/openapi.json put /v1/consumer/sessions/{session_id}/cart
openapi: 3.1.0
info:
  description: >-
    Provider-neutral print catalog and prepared-media validation. This document
    covers only routes owned by the Go service; it deliberately excludes
    migration-proxied order lifecycle routes and all provider payloads.
  license:
    name: Proprietary
    url: https://github.com/SENTINELITE/Batch-Relay-Go/blob/main/README.md
  title: Batch Relay API
  version: 1.0.1
servers:
  - url: https://api.batchrelay.com
security: []
tags:
  - description: >-
      Explicitly authorized purchaser context for studio order events. Event
      payloads remain free of contact details.
    name: Event context
  - description: Service health and the public API description.
    name: System
  - description: Test Mode session creation and API credential entry points.
    name: Authentication
  - description: >-
      Provider-neutral canonical catalog resources and platform-owned semantic
      definitions.
    name: Catalog
  - description: Studio-scoped guest checkout-link management.
    name: Checkout links
  - description: >-
      One-way operational event messages. Alert emails contain no message body
      and recipients read messages after Batch Relay authentication.
    name: Studio messages
  - description: >-
      Explicit, reviewable sandbox-to-Live promotion plans for forms, catalog,
      and storefront configuration.
    name: Sandbox promotions
  - description: Provider-neutral validation, quoting, and order lifecycle operations.
    name: Print orders
  - description: Managed fulfillment asset ingestion and metadata.
    name: Managed assets
  - description: Studio-scoped original asset upload sessions and objects.
    name: Studio assets
  - description: Prepared and confirmed event roster team changes.
    name: Event team changes
  - description: Authenticated studio, event, and form-management operations.
    name: Studio management
  - description: >-
      Authenticated studio retail catalog management. Draft and publication
      lifecycles are explicit per product or package.
    name: Studio catalog
  - description: >-
      Authenticated singular storefront assortment management. PATCH atomically
      publishes a new immutable assortment revision; no storefront draft
      lifecycle exists yet.
    name: Storefront
  - description: Managed media used by the studio retail catalog.
    name: Studio catalog assets
  - description: Template rendering job creation and retrieval.
    name: Template renders
  - description: >-
      Published browser-side template packages and short-lived server proof
      renders. Preview artifacts are never fulfillment artwork.
    name: Browser previews
  - description: API account and credential administration.
    name: API accounts
  - description: >-
      Standalone guest purchases; feature disabled by default. Temporary
      merchandise USD0.75 5x7 and USD1.50 8x10, plus authoritative shipping and
      tax.
    name: Consumer printing
paths:
  /v1/consumer/sessions/{session_id}/cart:
    parameters:
      - $ref: '#/components/parameters/ClientSurface'
      - $ref: '#/components/parameters/ClientVersion'
      - $ref: '#/components/parameters/InvocationMode'
    put:
      tags:
        - Consumer printing
      summary: Replace a guest cart using owned artwork
      description: >-
        Total quantity1..100. Artwork must be fully decoded and exactly5:7 or4:5
        with rotation allowed. Responses are no-store. Caller prices, provider
        identifiers and payment methods are never accepted.
      operationId: updateConsumerPrintCart
      parameters:
        - in: path
          name: session_id
          required: true
          schema:
            maxLength: 100
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumerCart'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsumerSession'
          description: Success
        '400':
          description: Invalid bounded request or prepared artwork
        '401':
          description: Capability unavailable, expired or belongs to another session
        '409':
          description: Frozen quote, cart revision or idempotency conflict
        '429':
          description: Bounded source or session rate exceeded
        '503':
          description: Disabled or authoritative payment/fulfillment dependency unavailable
      security:
        - consumerCapability: []
components:
  parameters:
    ClientSurface:
      description: >-
        Untrusted optional analytics hint naming the calling client surface. It
        never affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Client-Surface
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
    ClientVersion:
      description: >-
        Untrusted optional analytics hint naming the calling client version. It
        never affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Client-Version
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
    InvocationMode:
      description: >-
        Untrusted optional analytics hint naming the invocation mode. It never
        affects authorization, routing, pricing, or behavior.
      in: header
      name: X-BatchRelay-Invocation-Mode
      required: false
      schema:
        maxLength: 100
        minLength: 1
        type: string
  schemas:
    ConsumerCart:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/ConsumerItem'
          maxItems: 20
          minItems: 1
          type: array
      required:
        - items
      type: object
    ConsumerSession:
      additionalProperties: false
      properties:
        assets:
          items:
            $ref: '#/components/schemas/ConsumerAsset'
          type: array
        expires_at:
          format: date-time
          type: string
        items:
          items:
            $ref: '#/components/schemas/ConsumerItem'
          type: array
        mode:
          enum:
            - test
            - live
          type: string
        order_id:
          type: string
        session_id:
          type: string
        status:
          enum:
            - active
          type: string
      required:
        - session_id
        - expires_at
        - mode
        - status
        - items
        - assets
      type: object
    ConsumerItem:
      additionalProperties: false
      properties:
        asset_id:
          maxLength: 255
          type: string
        product_id:
          enum:
            - print-5x7
            - print-8x10
          type: string
        quantity:
          maximum: 100
          minimum: 1
          type: integer
      required:
        - product_id
        - asset_id
        - quantity
      type: object
    ConsumerAsset:
      additionalProperties: false
      properties:
        asset_id:
          type: string
        content_type:
          type: string
        pixel_height:
          maximum: 25000000
          minimum: 1
          type: integer
        pixel_width:
          maximum: 25000000
          minimum: 1
          type: integer
      required:
        - asset_id
        - content_type
        - pixel_width
        - pixel_height
      type: object
  securitySchemes:
    consumerCapability:
      bearerFormat: br_consumer_<256-bit random capability>
      description: >-
        Dedicated expiring guest-session capability. Never a developer API key.
        No Batch Relay account or Studio membership required.
      scheme: bearer
      type: http

````

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