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

# Activate a plan for a customer

> Activates a specific plan on a product for a customer. Usage-based (PAYG) plans are topup-first: a zero-balance customer receives `topup_required` and only activates after a successful top-up, while free plans activate immediately and paid recurring / hybrid plans return `payment_required`.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/sdk/activate
openapi: 3.0.0
info:
  contact: {}
  description: The SolvaPay REST API specification
  title: SolvaPay REST API
  version: '1.0'
servers: []
security: []
tags: []
paths:
  /v1/sdk/activate:
    post:
      tags:
        - Activation
      summary: Activate a plan for a customer
      description: >-
        Activates a specific plan on a product for a customer. Usage-based
        (PAYG) plans are topup-first: a zero-balance customer receives
        `topup_required` and only activates after a successful top-up, while
        free plans activate immediately and paid recurring / hybrid plans return
        `payment_required`.
      operationId: ActivateSdkController_activate
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActivatePlanDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivatePlanResponseDto'
          description: Plan activation result
      security:
        - SecretKey: []
components:
  schemas:
    ActivatePlanDto:
      properties:
        customerRef:
          maxLength: 20
          type: string
        planRef:
          maxLength: 20
          type: string
        productRef:
          maxLength: 20
          type: string
      required:
        - customerRef
        - productRef
        - planRef
      type: object
    ActivatePlanResponseDto:
      properties:
        checkoutSessionId:
          type: string
        checkoutUrl:
          type: string
        creditBalance:
          type: number
        creditsPerUnit:
          type: number
        currency:
          type: string
        message:
          type: string
        purchaseRef:
          type: string
        status:
          enum:
            - activated
            - already_active
            - topup_required
            - payment_required
            - invalid
          type: string
      required:
        - status
      type: object
  securitySchemes:
    SecretKey:
      bearerFormat: JWT
      description: >-
        Provider secret API key (sk_live_… / sk_test_…) supplied as a Bearer
        token.
      scheme: bearer
      type: http

````