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

# Provision live Stripe keys

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

Creates live Stripe keys automatically through Stripe, rather than keys you provide yourself. Use [Configure live Stripe keys](/api-reference/configure-live-stripe-keys) instead if you already have live keys from Stripe.

What happens depends on the app's current state:

- If no live key is stored yet, this creates one. The [sandbox](/developers/references/apps-api/sections/payments-stripe#from-sandbox-to-live) must be claimed and its Stripe account activated first.
- If a live key is already stored but setup never finished, this completes it using that key, without requiring activation.
- If setup already finished, this reports success without doing anything further.

Requires write access to the app. Workspace viewers cannot call this operation.



## OpenAPI

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


        Creates live Stripe keys automatically through Stripe, rather than keys
        you provide yourself. Use [Configure live Stripe
        keys](/api-reference/configure-live-stripe-keys) instead if you already
        have live keys from Stripe.


        What happens depends on the app's current state:


        - If no live key is stored yet, this creates one. The
        [sandbox](/developers/references/apps-api/sections/payments-stripe#from-sandbox-to-live)
        must be claimed and its Stripe account activated first.

        - If a live key is already stored but setup never finished, this
        completes it using that key, without requiring activation.

        - If setup already finished, this reports success without doing anything
        further.


        Requires write access to the app. Workspace viewers cannot call this
        operation.
      operationId: >-
        provision_live_keys_api_apps__app_id__payments_stripe_provision_live_keys_post
      parameters:
        - 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
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvisionLiveKeysResponse'
        '400':
          description: >-
            The Stripe account is not activated and no partial live setup can be
            recovered.
        '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. Setup and
            catalog operations also return `app_payment_management_not_allowed`
            when the app's workspace restricts payment management.
        '404':
          description: No Stripe sandbox exists or the app is outside the credential grant.
        '409':
          description: The workspace requires an unlocked SSO session.
        '429':
          description: >-
            The base limit is 5 requests per 60 seconds, scoped to your account
            rather than the workspace. See [Rate
            limits](/developers/references/apps-api/get-started/rate-limits) for
            the multiplier your plan gets.
      security:
        - PersonalAccessTokenAuth:
            - full_access
components:
  schemas:
    ProvisionLiveKeysResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Whether live key provisioning completed.
          example: true
        message:
          type: string
          title: Message
          description: Human-readable provisioning result.
          example: Live API keys provisioned successfully.
        already_configured:
          type: boolean
          title: Already Configured
          description: >-
            Whether provisioning was already complete or another concurrent call
            completed it. Defaults to `false`.
          default: false
          example: false
      type: object
      required:
        - success
        - message
      title: ProvisionLiveKeysResponse
      description: Response for automatic live key provisioning.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        Personal access token, sent as `Authorization: Bearer <token>`. Each
        operation lists the permission it needs: `read_only` or `full_access`. A
        full-access token can call every operation. A read-only token can call
        only the operations that list `read_only`; anything else returns 403
        `read_only_credential_route_not_allowed`.

````

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