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

# Create a billing checkout session



## OpenAPI

````yaml /openapi.json post /billing/checkout
openapi: 3.1.0
info:
  title: Youka REST API
  version: v1
  description: REST API for project-based karaoke creation, styling, media, and exports.
servers:
  - url: https://api.youka.io/api/v1
    description: Production
  - url: http://localhost:3003/api/v1
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Account
    description: Inspect the API key's account identity.
  - name: Uploads
    description: Upload source audio or video before creating a project.
  - name: Credits
    description: Inspect available credit balance.
  - name: Billing
    description: Create checkout sessions and manage billing.
  - name: Projects
    description: Create projects and read the long-lived project state.
  - name: Tasks
    description: Poll async task progress until it reaches a terminal state.
  - name: Exports
    description: Create exports and fetch fresh download URLs.
  - name: Presets
    description: Manage reusable karaoke styling presets.
  - name: Media
    description: Manage uploaded reusable media.
  - name: Project Settings
    description: Read and update a project's active settings.
paths:
  /billing/checkout:
    post:
      tags:
        - Billing
      summary: Create a billing checkout session
      operationId: createBillingCheckout
      parameters:
        - in: header
          name: Idempotency-Key
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillingCheckoutRequest'
      responses:
        '200':
          description: Checkout session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingCheckoutResponse'
components:
  schemas:
    BillingCheckoutRequest:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        productType:
          type: string
          enum:
            - subscription
            - topup
        cycle:
          type: string
          enum:
            - monthly
            - yearly
        quantity:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        platform:
          default: api
          type: string
          enum:
            - web
            - desktop
            - cli
            - sdk
            - api
      required:
        - productType
        - quantity
        - platform
      additionalProperties: false
    BillingCheckoutResponse:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        url:
          type: string
          format: uri
        sessionId:
          type: string
      required:
        - url
        - sessionId
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key

````