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

# Apply the default plan to a customer

> Puts an unpriced customer on the workspace's default plan through the ordinary policy write — mode pinning, wallet provisioning (an empty wallet is opened on demand in wallet mode) and the plan's invoice container attach all hold exactly as on the policy PUT. Idempotent and never destructive: a customer already on the default plan comes back `applied: false`, a customer on any OTHER arrangement is a 409 — an applied default must never overwrite a choice somebody made. 404 when no default plan is marked. A credits-mode default draws down the pot of the product that adopted its rate card; 400 when no product has adopted it, or several have, since the pot then has to be picked on the policy surface.



## OpenAPI

````yaml post /v1/agents/customers/{customer_id}/apply-default-plan
openapi: 3.1.0
info:
  title: Hyperline API
  version: 0.0.0
servers:
  - url: https://api.hyperline.co
  - url: https://sandbox.api.hyperline.co
security: []
paths:
  /v1/agents/customers/{customer_id}/apply-default-plan:
    post:
      tags:
        - Agents
      summary: Apply the default plan to a customer
      description: >-
        Puts an unpriced customer on the workspace's default plan through the
        ordinary policy write — mode pinning, wallet provisioning (an empty
        wallet is opened on demand in wallet mode) and the plan's invoice
        container attach all hold exactly as on the policy PUT. Idempotent and
        never destructive: a customer already on the default plan comes back
        `applied: false`, a customer on any OTHER arrangement is a 409 — an
        applied default must never overwrite a choice somebody made. 404 when no
        default plan is marked. A credits-mode default draws down the pot of the
        product that adopted its rate card; 400 when no product has adopted it,
        or several have, since the pot then has to be picked on the policy
        surface.
      operationId: applyAgentDefaultPlan
      parameters:
        - schema:
            type: string
          required: true
          name: customer_id
          in: path
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  applied:
                    type: boolean
                  policy:
                    type: object
                    properties:
                      id:
                        type: string
                      customer_id:
                        type: string
                      internal_description:
                        type:
                          - string
                          - 'null'
                      created_at:
                        type: string
                        format: date-time
                        description: >-
                          UTC date time string in the [ISO
                          8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                        example: '2024-12-20T16:04:11Z'
                      updated_at:
                        type: string
                        format: date-time
                        description: >-
                          UTC date time string in the [ISO
                          8601](https://en.wikipedia.org/wiki/ISO_8601) format.
                        example: '2024-12-20T16:04:11Z'
                      agent_slug:
                        type: string
                      is_default:
                        type: boolean
                      mode:
                        type: string
                        enum:
                          - wallet
                          - credits
                          - windows
                      wallet_id:
                        type:
                          - string
                          - 'null'
                      credit_product_id:
                        type:
                          - string
                          - 'null'
                      markup_percent:
                        type: string
                      overage_mode:
                        type: string
                        enum:
                          - refuse
                          - metered
                      overage_markup_percent:
                        type: string
                      overage_rate_card_id:
                        type:
                          - string
                          - 'null'
                      overage_rate_card_source:
                        type:
                          - string
                          - 'null'
                        enum:
                          - policy
                          - plan
                      overage_wallet_id:
                        type:
                          - string
                          - 'null'
                      floor:
                        type: string
                      credit_rates:
                        type:
                          - object
                          - 'null'
                        properties:
                          llm:
                            type: array
                            items:
                              type: object
                              properties:
                                provider:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                model:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                credits_per_1m_input:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                                credits_per_1m_output:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                                credits_per_1m_cached_input:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                                credits_per_1m_cache_write:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                                dimensions:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                        pattern: ^[a-z0-9_.]{1,64}$
                                      rate:
                                        type: string
                                        maxLength: 40
                                        pattern: ^\d+(\.\d+)?$
                                      per:
                                        type: string
                                        enum:
                                          - 1m
                                          - 1k
                                          - unit
                                    required:
                                      - key
                                      - rate
                                      - per
                                  maxItems: 20
                              required:
                                - credits_per_1m_input
                                - credits_per_1m_output
                            maxItems: 500
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                vendor:
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                item:
                                  type: string
                                  minLength: 1
                                  maxLength: 128
                                credits_per_unit:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                                dimensions:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      key:
                                        type: string
                                        pattern: ^[a-z0-9_.]{1,64}$
                                      rate:
                                        type: string
                                        maxLength: 40
                                        pattern: ^\d+(\.\d+)?$
                                      per:
                                        type: string
                                        enum:
                                          - 1m
                                          - 1k
                                          - unit
                                    required:
                                      - key
                                      - rate
                                      - per
                                  maxItems: 20
                              required:
                                - vendor
                                - item
                                - credits_per_unit
                            maxItems: 500
                          fallback_credits_per_usd:
                            type: string
                            maxLength: 40
                            pattern: ^\d+(\.\d+)?$
                      window_rates:
                        type:
                          - object
                          - 'null'
                        properties:
                          unit_rates:
                            type: object
                            properties:
                              llm:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    provider:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                    model:
                                      type: string
                                      minLength: 1
                                      maxLength: 128
                                    units_per_1m_input:
                                      type: string
                                      maxLength: 40
                                      pattern: ^\d+(\.\d+)?$
                                    units_per_1m_output:
                                      type: string
                                      maxLength: 40
                                      pattern: ^\d+(\.\d+)?$
                                    units_per_1m_cached_input:
                                      type: string
                                      maxLength: 40
                                      pattern: ^\d+(\.\d+)?$
                                    units_per_1m_cache_write:
                                      type: string
                                      maxLength: 40
                                      pattern: ^\d+(\.\d+)?$
                                    dimensions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                            pattern: ^[a-z0-9_.]{1,64}$
                                          rate:
                                            type: string
                                            maxLength: 40
                                            pattern: ^\d+(\.\d+)?$
                                          per:
                                            type: string
                                            enum:
                                              - 1m
                                              - 1k
                                              - unit
                                        required:
                                          - key
                                          - rate
                                          - per
                                      maxItems: 20
                                  required:
                                    - units_per_1m_input
                                    - units_per_1m_output
                                maxItems: 500
                              items:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    vendor:
                                      type: string
                                      minLength: 1
                                      maxLength: 64
                                    item:
                                      type: string
                                      minLength: 1
                                      maxLength: 128
                                    units_per_unit:
                                      type: string
                                      maxLength: 40
                                      pattern: ^\d+(\.\d+)?$
                                    dimensions:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            type: string
                                            pattern: ^[a-z0-9_.]{1,64}$
                                          rate:
                                            type: string
                                            maxLength: 40
                                            pattern: ^\d+(\.\d+)?$
                                          per:
                                            type: string
                                            enum:
                                              - 1m
                                              - 1k
                                              - unit
                                        required:
                                          - key
                                          - rate
                                          - per
                                      maxItems: 20
                                  required:
                                    - vendor
                                    - item
                                    - units_per_unit
                                maxItems: 500
                              fallback_units_per_usd:
                                type: string
                                maxLength: 40
                                pattern: ^\d+(\.\d+)?$
                          windows:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                  minLength: 1
                                  maxLength: 32
                                  pattern: ^[a-z0-9][a-z0-9_-]*$
                                duration_minutes:
                                  type: integer
                                  minimum: 1
                                  maximum: 527040
                                included_units:
                                  type: string
                                  maxLength: 40
                                  pattern: ^\d+(\.\d+)?$
                              required:
                                - key
                                - duration_minutes
                                - included_units
                            minItems: 1
                            maxItems: 8
                        required:
                          - unit_rates
                          - windows
                      rate_card_id:
                        type:
                          - string
                          - 'null'
                      rate_card_source:
                        type:
                          - string
                          - 'null'
                        enum:
                          - policy
                          - plan
                      plan:
                        type:
                          - object
                          - 'null'
                        properties:
                          id:
                            type: string
                          name:
                            type: string
                        required:
                          - id
                          - name
                      settlement_interval_minutes:
                        type:
                          - number
                          - 'null'
                      settlement_schedule:
                        type:
                          - string
                          - 'null'
                        enum:
                          - calendar_month
                      resolved_rate_card:
                        type:
                          - object
                          - 'null'
                        properties:
                          fallback_per_usd:
                            type:
                              - string
                              - 'null'
                          layer_count:
                            type: number
                          llm_rows:
                            type: number
                          item_rows:
                            type: number
                          has_default_llm_row:
                            type: boolean
                        required:
                          - fallback_per_usd
                          - layer_count
                          - llm_rows
                          - item_rows
                          - has_default_llm_row
                      blocked:
                        type: boolean
                    required:
                      - id
                      - customer_id
                      - internal_description
                      - created_at
                      - updated_at
                      - agent_slug
                      - is_default
                      - mode
                      - wallet_id
                      - credit_product_id
                      - markup_percent
                      - overage_mode
                      - overage_markup_percent
                      - overage_rate_card_id
                      - overage_rate_card_source
                      - overage_wallet_id
                      - floor
                      - credit_rates
                      - window_rates
                      - rate_card_id
                      - rate_card_source
                      - plan
                      - settlement_interval_minutes
                      - settlement_schedule
                      - resolved_rate_card
                      - blocked
                required:
                  - applied
                  - policy
        '404':
          description: Customer not found, or no default plan is set
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - bearer: []
components:
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````