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

# Create Builder Code

> Create the authenticated user's builder code. The code is generated server-side as a UUID and stored with active=true. Specify both QFEX and builder fee shares in basis points; they need not sum to 10000. QFEX share must be at least 5000 (50%), builder share must be >= 0, and their sum must be at most 10000. After create, reload builder-code mappings on clearing house.



## OpenAPI

````yaml https://api.qfex.com/contracts/2026-10-29/openapi.yaml post /user/builder-code
openapi: 3.1.0
info:
  contact:
    email: support@qfex.com
    name: QFEX Support
  description: REST API for QFEX
  license:
    name: QFEX License
    url: https://qfex.com/license
  title: QFEX REST API
  version: '2026-10-29'
servers:
  - description: Production server
    url: https://api.qfex.com
security: []
paths:
  /user/builder-code:
    post:
      tags:
        - user
        - builder
      summary: Create Builder Code
      description: >-
        Create the authenticated user's builder code. The code is generated
        server-side as a UUID and stored with active=true. Specify both QFEX and
        builder fee shares in basis points; they need not sum to 10000. QFEX
        share must be at least 5000 (50%), builder share must be >= 0, and their
        sum must be at most 10000. After create, reload builder-code mappings on
        clearing house.
      operationId: create-builder-code
      parameters:
        - description: >-
            Published API contract date. Omit or use latest for the latest
            contract; explicit dates stay pinned. Applies to request validation
            and response format.
          in: query
          name: api_version
          schema:
            examples:
              - '2026-10-29'
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBuilderCodeRequestBody'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuilderCodeDetails'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
        - HMACSignature: []
          Nonce: []
          PublicKey: []
          Timestamp: []
components:
  schemas:
    CreateBuilderCodeRequestBody:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - >-
              https://api.qfex.com/contracts/2026-10-29/schemas/CreateBuilderCodeRequestBody.json
          format: uri
          readOnly: true
          type: string
        builder_fee_share_bps:
          examples:
            - 3000
          format: int64
          maximum: 5000
          minimum: 0
          type: integer
        qfex_fee_share_bps:
          examples:
            - 5000
          format: int64
          maximum: 10000
          minimum: 5000
          type: integer
      required:
        - qfex_fee_share_bps
        - builder_fee_share_bps
      type: object
    BuilderCodeDetails:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - >-
              https://api.qfex.com/contracts/2026-10-29/schemas/BuilderCodeDetails.json
          format: uri
          readOnly: true
          type: string
        builder_code:
          type: string
        builder_fee_share_bps:
          format: int64
          type: integer
        builder_fee_share_percent:
          format: double
          type: number
        created_at:
          format: date-time
          type: string
        qfex_fee_share_bps:
          format: int64
          type: integer
        qfex_fee_share_percent:
          format: double
          type: number
        updated_at:
          format: date-time
          type: string
      required:
        - builder_code
        - qfex_fee_share_bps
        - qfex_fee_share_percent
        - builder_fee_share_bps
        - builder_fee_share_percent
        - created_at
        - updated_at
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        $schema:
          description: A URL to the JSON Schema for this object.
          examples:
            - https://api.qfex.com/contracts/2026-10-29/schemas/ErrorModel.json
          format: uri
          readOnly: true
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    HMACSignature:
      description: HMAC-SHA256 signature (hex-encoded).
      in: header
      name: x-qfex-hmac-signature
      type: apiKey
      x-stoplight:
        hideExamples: true
    Nonce:
      description: Unique request nonce (hex encoded, max 100 characters).
      in: header
      name: x-qfex-nonce
      type: apiKey
      x-stoplight:
        hideExamples: true
    PublicKey:
      description: >-
        QFEX API Authentication requires these headers:


        - **x-qfex-public-key**: Your public API key

        - **x-qfex-hmac-signature**: HMAC signature of the request (hex encoded)

        - **x-qfex-nonce**: Unique nonce for the request (hex encoded, max 100
        characters)

        - **x-qfex-timestamp**: Unix timestamp of the request


        These four are required. Optionally send **x-qfex-requested-account-id**
        (UUID) to act as a subaccount; see Signature Generation below.


        **Signature Generation:**


        1. Generate a cryptographically secure random nonce (hex encoded, max
        100 characters) and capture the current Unix timestamp.

        2. Build the string `${nonce}:${unix_ts}` and compute an HMAC-SHA256
        using your secret key.

        3. Hex-encode the HMAC result to get the signature.

        4. Send the required auth headers below. The nonce must be unique within
        a 15 minute window.


        **Important:** The signature itself must be hex-encoded before being
        sent in the `x-qfex-hmac-signature` header.


        **Optional header:** `x-qfex-requested-account-id` (UUID) selects an
        account where the authenticated user is a member; omit it to use the
        primary account.
      in: header
      name: x-qfex-public-key
      type: apiKey
      x-stoplight:
        hideExamples: true
    Timestamp:
      description: Unix timestamp (seconds since epoch).
      in: header
      name: x-qfex-timestamp
      type: apiKey
      x-stoplight:
        hideExamples: true

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.