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

# List commission plans

> **Beta. This endpoint is unstable and may still change without notice.** Pin against the dated version and watch the changelog.

List the commission plans of your Organisation. Supports cursor-based pagination by default and page-based pagination when you pass page or offset.



## OpenAPI

````yaml assets/openapi-v2-commission.json get /api/commissions/plans
openapi: 3.1.0
info:
  title: Fynn V2 Commission API
  version: 2026-07
  description: >-
    REST API for Fynn commission plans. Define how sales reps earn commission on
    invoices, set per-product rates, and control two monthly payout gates: a
    minimum payout and a minimum monthly revenue, each evaluated per sales rep
    and calendar month. Authenticate with a bearer token of your Organisation
    that carries the commission-plans permission.
servers:
  - url: https://coreapi.io
    description: Production
  - url: https://preview.coreapi.io
    description: Sandbox
security:
  - BearerToken: []
tags:
  - name: Commission Plans
    description: >-
      Create and manage commission plans, rates, product rules and monthly
      payout gates.
paths:
  /api/commissions/plans:
    get:
      tags:
        - Commission Plans
      summary: List commission plans
      description: >-
        **Beta. This endpoint is unstable and may still change without notice.**
        Pin against the dated version and watch the changelog.


        List the commission plans of your Organisation. Supports cursor-based
        pagination by default and page-based pagination when you pass page or
        offset.
      operationId: listCommissionPlans
      parameters:
        - name: name
          in: query
          required: false
          schema:
            type: string
          description: Filter by a name substring.
        - name: type
          in: query
          required: false
          schema:
            type: string
          description: Filter by plan type.
        - name: isActive
          in: query
          required: false
          schema:
            type: boolean
          description: Filter by active state.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - createdAt
              - name
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Cursor for cursor-based pagination.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 20
        - name: page
          in: query
          required: false
          schema:
            type: integer
          description: Switches to page-based pagination.
      responses:
        '200':
          description: A paginated list of commission plans.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommissionPlanList'
        '401':
          description: Authentication is missing or the token is invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
        '403':
          description: The token lacks the permission to read commission plans.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemError'
components:
  schemas:
    CommissionPlanList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CommissionPlan'
        meta:
          $ref: '#/components/schemas/ResponseMetadata'
        pagination:
          $ref: '#/components/schemas/PaginationMetadata'
    ProblemError:
      type: object
      description: >-
        Problem detail error body (application/problem+json). Additional members
        may be present depending on the error.
      properties:
        status:
          type: integer
          example: 404
        type:
          type: string
          description: Stable machine readable error key.
          example: PLAN__NOT_FOUND
        title:
          type: string
          example: An error occurred
        detail:
          type: string
          example: Plan not found.
      required:
        - status
        - type
        - title
        - detail
    CommissionPlan:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
        percentage:
          type: string
          nullable: true
          description: Base commission rate as a decimal fraction.
        basisType:
          type: string
          nullable: true
        triggerEvent:
          type: string
        commissionScope:
          type: string
        requireDeal:
          type: boolean
        payoutThresholdAmount:
          type: object
          properties:
            amount:
              type: integer
              description: Amount in the currency's minor unit (e.g. cents).
            displayAmount:
              type: number
              description: The amount as a decimal, for display.
            currency:
              type: string
              description: ISO 4217 currency code.
            precision:
              type: integer
              description: Number of minor-unit decimals.
          nullable: true
          description: >-
            Minimum commission a sales rep must accumulate on this plan within a
            calendar month for that month's commissions to be paid out.
            Evaluated per sales rep, per plan, per month. Null means no minimum.
        monthlyRevenueThreshold:
          type: object
          properties:
            amount:
              type: integer
              description: Amount in the currency's minor unit (e.g. cents).
            displayAmount:
              type: number
              description: The amount as a decimal, for display.
            currency:
              type: string
              description: ISO 4217 currency code.
            precision:
              type: integer
              description: Number of minor-unit decimals.
          nullable: true
          description: >-
            Minimum invoice revenue a sales rep must generate on this plan
            within a calendar month before any commission for that month is paid
            out. If the revenue stays below this, the whole month is withheld.
            Evaluated per sales rep, per plan, per month. Null means no minimum.
        isActive:
          type: boolean
        rules:
          type: array
          items:
            $ref: '#/components/schemas/CommissionPlanRule'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    ResponseMetadata:
      type: object
      properties:
        count:
          type: integer
          nullable: true
          description: Number of items in this response.
        total:
          type: integer
          nullable: true
          description: Total number of items. May be omitted for performance reasons.
    PaginationMetadata:
      type: object
      description: >-
        Pagination metadata. Cursor based fields are present for the default
        cursor mode, page based fields are present when you pass page or offset.
      properties:
        cursor:
          type: string
          nullable: true
        hasMore:
          type: boolean
        nextCursor:
          type: string
          nullable: true
        prevCursor:
          type: string
          nullable: true
        limit:
          type: integer
          example: 20
        totalItems:
          type: integer
          nullable: true
        itemsPerPage:
          type: integer
          nullable: true
        currentPage:
          type: integer
          nullable: true
        totalPages:
          type: integer
          nullable: true
        pageTotalItems:
          type: integer
          nullable: true
    CommissionPlanRule:
      type: object
      properties:
        id:
          type: string
        productId:
          type: string
          nullable: true
        externalProductReference:
          type: string
          nullable: true
        percentage:
          type: string
          description: Commission rate as a decimal fraction (0.20 = 20 %).
        priority:
          type: integer
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
      description: >-
        Bearer token of your Organisation with the commission-plans permission
        (read for GET, write for POST/PUT/DELETE). Send it as Authorization:
        Bearer <token>.

````