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

# Update Stripe product

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Updates supplied non-null fields. An empty body leaves the product unchanged. Requires write access to the app. Workspace viewers cannot call this operation. Uses the Stripe account selected by the app's stored credentials. Live keys select the live catalog and test keys select the test catalog. Products and prices belong to that Stripe account, so apps configured with the same account share its catalog.



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json put /api/apps/{app_id}/payments/stripe/products/{product_id}
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/payments/stripe/products/{product_id}:
    put:
      summary: Update Stripe product
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Updates supplied non-null fields. An empty body leaves the product
        unchanged. Requires write access to the app. Workspace viewers cannot
        call this operation. Uses the Stripe account selected by the app's
        stored credentials. Live keys select the live catalog and test keys
        select the test catalog. Products and prices belong to that Stripe
        account, so apps configured with the same account share its catalog.
      operationId: >-
        update_product_api_apps__app_id__payments_stripe_products__product_id__put
      parameters:
        - name: product_id
          in: path
          required: true
          schema:
            type: string
            description: Stripe product ID in the configured account.
            title: Product Id
          description: Stripe product ID in the configured account.
          example: prod_T7mK2p9Q4r6S8v
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the Base44 app.
            title: App Id
          description: ID of the Base44 app.
          example: 6820f3a4e7b91d003c45a1f2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProductRequest'
      responses:
        '200':
          description: The operation result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StripeCatalogProduct'
        '400':
          description: Stripe keys are missing, or the app's test sandbox has expired.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            The credential is not permitted or you don't have the required app
            access. A missing app also fails the app access check.
        '404':
          description: The app is outside the credential's granted workspace.
        '409':
          description: The workspace requires an unlocked SSO session.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UpdateProductRequest:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: >-
            New product name. Omitted or null values leave it unchanged.
            Defaults to `null`.
          example: Studio membership
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: >-
            New product description. Omitted or null values leave it unchanged.
            Defaults to `null`.
          example: Access to weekly classes.
        metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Metadata
          description: >-
            Metadata to store. Use string values accepted by Stripe. Defaults to
            `null`. Omitted or null metadata leaves an existing value unchanged
            on update.
          example:
            tier: standard
        active:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Active
          description: >-
            Whether the product is active. Omitted or null values leave it
            unchanged. Defaults to `null`.
          example: false
      type: object
      title: UpdateProductRequest
      description: Request to update a Stripe product.
    StripeCatalogProduct:
      properties:
        id:
          type: string
          title: Id
          description: Stripe product ID.
          example: prod_T7mK2p9Q4r6S8v
        name:
          type: string
          title: Name
          description: Product name.
          example: Studio membership
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Product description, or `null` when none is set.
          example: Access to weekly classes.
        active:
          type: boolean
          title: Active
          description: Whether the product is active.
          example: true
        images:
          items:
            type: string
          type: array
          title: Images
          description: Product image URLs.
          example:
            - https://example.com/membership.jpg
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
          description: Metadata stored on the product.
          example:
            category: membership
      type: object
      required:
        - id
        - name
        - description
        - active
        - images
        - metadata
      title: StripeCatalogProduct
      description: A product in the Stripe account configured for the app.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````