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

# Subscribe to a KYC plan

> Subscribes the authenticated client to a KYC plan, debiting the wallet balance.



## OpenAPI

````yaml /openapi.json post /kyc/subscribe
openapi: 3.0.0
info:
  description: |-
    Hyparrow payment gateway API. Authenticate server-to-server
    requests with your API key credentials.
  title: Hyparrow API
  termsOfService: https://hyparrow.cloud/terms
  contact:
    name: Hyparrow Support
    email: support@hyparrow.com
  version: '1.0'
servers:
  - url: https://api.hyparrow.cloud/api/v1
    description: Production
  - url: https://sandbox.hyparrow.cloud/api/v1
    description: Sandbox - simulated providers, test keys only, no real money
security: []
paths:
  /kyc/subscribe:
    post:
      tags:
        - KYC
      summary: Subscribe to a KYC plan
      description: >-
        Subscribes the authenticated client to a KYC plan, debiting the wallet
        balance.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/internal_handlers.KYCSubscribeRequest'
        description: Plan to subscribe to
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: >-
            Request body failed validation. Rejected before the verification
            network was called, so not billed.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/internal_handlers.KYCValidationErrorResponse
        '401':
          description: Missing or invalid API credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_handlers.KYCErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    internal_handlers.KYCSubscribeRequest:
      type: object
      required:
        - planId
      properties:
        planId:
          description: UUID of the plan, from GET /kyc/plans.
          type: string
          example: 8f2c0b1a-9d4e-4a7b-bc31-2f6e5d0a1c44
    internal_handlers.KYCValidationErrorResponse:
      type: object
      properties:
        code:
          type: string
          example: VALIDATION_ERROR
        error:
          type: string
          example: bvn must be exactly 11 digits
        field:
          description: The JSON field at fault, when the failure is attributable to one.
          type: string
          example: bvn
        success:
          type: boolean
          example: false
    internal_handlers.KYCErrorResponse:
      type: object
      properties:
        code:
          description: |-
            Stable machine-readable classification, e.g. INSUFFICIENT_BALANCE or
            QUOTA_EXCEEDED.
          type: string
          example: INSUFFICIENT_BALANCE
        error:
          type: string
          example: Insufficient verification balance
        success:
          type: boolean
          example: false
  securitySchemes:
    ApiKeyAuth:
      description: >-
        Server-to-server auth. Send your API key in the "X-API-Key" header and
        your API secret in the "X-API-Secret" header.
      type: apiKey
      name: X-API-Key
      in: header

````