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

# Set Fee Policy

> Configure your partner markup fee for Polymarket orders

<Warning>
  **The Predexon Trading API is being retired.** New signups are closed. **Trading stops on July 10, 2026** — sell or close any open positions before then. After that, the API is withdrawal-only: **redeem resolved positions and withdraw all funds by July 17, 2026.** The read-only [Data & Signals API](/data-signals/overview) is unaffected.
</Warning>

Partner fees must be either `0` (disabled) or `>= 10` bps when enabled. The current combined limit is 500 bps (5% - `platformFeeBps + partnerFeeBps`). `partnerTreasuryAddress` is required when `partnerFeeBps > 0`.

<Note>
  Concurrent updates may return `409 Conflict`. Retry the request.
</Note>


## OpenAPI

````yaml PUT /api/fees/policy
openapi: 3.1.0
info:
  title: Predexon Trading API
  description: Unified trading API for prediction markets
  version: 1.0.0
servers:
  - url: https://trade.predexon.com
security:
  - ApiKeyAuth: []
paths:
  /api/fees/policy:
    put:
      tags:
        - Fees
      summary: Set Fee Policy
      description: Configure your partner markup fee for a venue.
      operationId: set_fee_policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetFeePolicyRequest'
      responses:
        '200':
          description: Fee policy updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeePolicy'
              example:
                venue: polymarket
                enabled: true
                platformFeeBps: 0
                partnerFeeBps: 100
                partnerTreasuryAddress: '0x1234567890abcdef1234567890abcdef12345678'
                totalFeeBps: 100
        '400':
          description: >-
            Validation error (e.g., `partnerFeeBps` below minimum when enabled,
            or missing `partnerTreasuryAddress` when `partnerFeeBps > 0`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: API key required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Concurrent modification — retry the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    SetFeePolicyRequest:
      type: object
      required:
        - venue
        - partnerFeeBps
      properties:
        venue:
          type: string
          enum:
            - polymarket
          description: Venue to configure. Fee policies are currently Polymarket-only.
        partnerFeeBps:
          type: integer
          description: >-
            Partner markup fee in basis points. 0 to disable, min 10 when > 0,
            max 500.
        partnerTreasuryAddress:
          type: string
          description: >-
            EVM (Polygon) address to receive partner fee revenue. Required when
            partnerFeeBps > 0.
      example:
        venue: polymarket
        partnerFeeBps: 100
        partnerTreasuryAddress: '0x1234567890abcdef1234567890abcdef12345678'
    FeePolicy:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether fees are active
        platformFeeBps:
          type: number
          description: Platform fee in basis points
        partnerFeeBps:
          type: number
          description: Partner markup fee in basis points (0 if not configured)
        partnerTreasuryAddress:
          type: string
          nullable: true
          description: EVM address receiving partner fee revenue
        totalFeeBps:
          type: number
          description: 'Combined fee: platformFeeBps + partnerFeeBps'
    ApiError:
      type: object
      description: >-
        Unified error envelope returned by every endpoint on any 4xx or 5xx
        response. The `error` field is a stable snake_case code partners can
        branch on; `message` is the human-readable explanation (free-form, may
        change); `requestId` is the request correlation id (also returned in the
        `x-request-id` response header) — quote it when contacting support.
      required:
        - error
        - message
        - requestId
      properties:
        error:
          type: string
          description: >-
            Stable machine-readable code. See [Error
            codes](/trading-api/error-codes) for the full list. Snake_case,
            never renamed once shipped.
          example: insufficient_balance
        message:
          type: string
          description: >-
            Human-readable explanation. Free-form text that may include
            specifics (amounts, IDs, hints); do not parse — branch on `error`
            instead.
          example: 'Insufficient balance: need 50.000000, have 12.500000'
        requestId:
          type: string
          format: uuid
          description: >-
            Request correlation id. Quote this when filing a support ticket.
            Also returned in the `x-request-id` response header on every
            response (success or failure).
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````