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

# Create Affiliate

> Creates a new affiliate record for the given customer in this store.
Requires the `stores.affiliates.update` permission.



## OpenAPI

````yaml POST /stores/{storeId}/affiliates/{customerId}
openapi: 3.0.4
info:
  title: Komerza API
  description: >-
    The base Komerza API for interfacing with the Komerza platform through a
    REST interface.
  termsOfService: https://komerza.com/terms
  contact:
    name: Support
    url: https://help.komerza.com
    email: support@komerza.com
  version: vUnknown-Development
servers:
  - url: https://api.komerza.com
    description: The production Komerza API
security:
  - bearer: []
tags:
  - name: Affiliate
    description: Manage store affiliates.
  - name: Analytics
    description: >-
      Analytics endpoints for a store: store dashboard, visitor dashboard and
      daily stats.
  - name: Application
    description: Manages OAuth2 applications owned by users for third-party integrations.
  - name: Billing
    description: Provides billing-related endpoints for user accounts.
  - name: Blacklist
    description: Manages blacklist rules and customer blocking for a store.
  - name: BlogCategory
    description: Manages blog categories for a store.
  - name: BlogPost
    description: Manages blog posts for a store.
  - name: Category
    description: >-
      Handles the management of categories, which are used to organize products
      within a store.
  - name: Coupon
    description: >-
      Handles the management of coupons, which are used to give customers a
      percentage discount off any products in your

      store
  - name: Customer
    description: Controller that handles customer-related actions.
  - name: CustomField
    description: Controller for managing custom fields on a product variant.
  - name: CustomPaymentMethod
    description: >-
      Manages custom payment methods for a store (Instructions and Redirect
      types).
  - name: Discord
    description: >-
      Manages Discord integration settings, variant roles, product overrides,
      and grants.
  - name: DiscountDialog
    description: >-
      Handles the management of discount dialogs, which are promotional popups
      displayed on storefronts

      to encourage customer engagement through discount offers.
  - name: Domain
    description: >-
      Controller that handles all store domain-related concerns, like URLs and
      custom domains.
  - name: EmailMarketing
    description: Manages email marketing setup and status for a store
  - name: EmailMarketingCampaign
    description: Manages email campaigns (create, schedule, send, cancel)
  - name: EmailMarketingCredit
    description: Manages email marketing credit packages and purchases
  - name: EmailMarketingDomain
    description: Manages email sending domains for a store (add, verify, delete)
  - name: EmailMarketingRecipient
    description: Manages email recipient lists and their entries
  - name: EmailMarketingSuppression
    description: Manages email suppressions (unsubscribes, bounces, complaints) for a store
  - name: EmailMarketingTemplate
    description: Manages email templates (GrapeJS editor JSON + compiled HTML)
  - name: EmailUnsubscribe
    description: Public endpoint for email unsubscribe (no authentication required)
  - name: FlaggedUsers
    description: Controller for managing flagged users in the administration panel.
  - name: LicenseKey
    description: >-
      Controller that handles license key/item operations including search and
      inventory management.
  - name: OAuth
    description: Controller responsible for handling OAuth2 operations.
  - name: Onboarding
    description: >-
      Manages the merchant onboarding setup guide, including progress tracking,
      step completion, and dismissal.
  - name: Order
    description: Controller that handles order-related concerns.
  - name: Passkey
    description: Manages FIDO2/WebAuthn passkeys for two-factor authentication.
  - name: Product
    description: >-
      Handles creation, retrieval, updating, and deletion of products within a
      store.
  - name: Review
    description: ''
  - name: Store
    description: >-
      Manages actions related to stores in the system, such as creating,
      updating, and retrieving store information.
  - name: StoreBranding
    description: >-
      Provides functionalities for managing store branding and related
      configurations.
  - name: Subscription
    description: Controller for merchant management of customer subscriptions.
  - name: Tax
    description: Manages tax/VAT settings and rules for a store.
  - name: Temp
  - name: Ticket
    description: Handles ticket replies and closure
  - name: User
    description: Manages user-related functionalities and actions for the platform.
  - name: Variant
    description: >-
      Controller which handles management of product variants, including
      creation, updates, deletion,

      file and image uploads, and delivery settings.
  - name: VolumeDiscount
    description: Controller for managing volume discount tiers on a product variant.
  - name: Webhook
    description: Controller for managing webhook operations within the system.
paths:
  /stores/{storeId}/affiliates/{customerId}:
    post:
      tags:
        - Affiliate
      summary: Create a new affiliate for a customer.
      description: |-
        Creates a new affiliate record for the given customer in this store.
        Requires the `stores.affiliates.update` permission.
      parameters:
        - name: storeId
          in: path
          description: Store to create the affiliate in.
          required: true
          schema:
            type: string
            format: uuid
        - name: customerId
          in: path
          description: Target customer ID.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Affiliate details (link, percentages, etc.).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AffiliateForm'
      responses:
        '200':
          description: The object was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffiliateDtoResponse'
        '400':
          description: >-
            The provided form information is not valid, check that the provided
            data is valid. You can use the 'invalidFields' field to get the list
            of invalid fields or just use the 'message' field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponse'
        '403':
          description: >-
            You are not authorized to access this endpoint, you may be missing
            an API key scope or be requesting a privileged endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectResponse'
components:
  schemas:
    AffiliateForm:
      required:
        - link
      type: object
      properties:
        isEnabled:
          type: boolean
          description: >-
            Indicates whether the affiliate is active.

            If null, defaults to true when creating, or leaves unchanged when
            updating.
          nullable: true
        link:
          maxLength: 256
          minLength: 0
          type: string
          description: |-
            A link provided to affiliates for tracking and promotional purposes.
            Required and must not exceed 256 characters.
        returnPercentage:
          maximum: 100
          minimum: 0
          type: integer
          description: >-
            The percentage of the order return the affiliate receives.

            If null, uses store’s default when creating, or leaves unchanged
            when updating.
          format: int32
          nullable: true
        percentageOff:
          maximum: 100
          minimum: 0
          type: integer
          description: >-
            The percentage discount offered by the affiliate link.

            If null, uses store’s default when creating, or leaves unchanged
            when updating.
          format: int32
          nullable: true
        balance:
          maximum: 1.7976931348623157e+308
          minimum: 0
          type: number
          description: >-
            The affiliate’s current balance.

            If null, defaults to zero when creating, or leaves unchanged when
            updating.
          format: double
          nullable: true
      additionalProperties: false
      description: Form for creating or updating a store‐affiliate record.
    AffiliateDtoResponse:
      required:
        - success
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the operation or response was successful.
        message:
          type: string
          description: >-
            A descriptive message providing additional context or information
            about the response.
          nullable: true
        code:
          type: string
          description: >-
            The error code (if there was an error) to use when referencing the
            error
          nullable: true
        data:
          $ref: '#/components/schemas/AffiliateDto'
      additionalProperties: false
      description: Represents a default generic response for API endpoints.
    ObjectResponse:
      required:
        - success
      type: object
      properties:
        success:
          type: boolean
          description: Indicates whether the operation or response was successful.
        message:
          type: string
          description: >-
            A descriptive message providing additional context or information
            about the response.
          nullable: true
        code:
          type: string
          description: >-
            The error code (if there was an error) to use when referencing the
            error
          nullable: true
        data:
          description: Represents the data associated with a response.
          nullable: true
      additionalProperties: false
      description: Represents a default generic response for API endpoints.
    AffiliateDto:
      required:
        - balance
        - isEnabled
      type: object
      properties:
        isEnabled:
          type: boolean
          description: Indicates whether the users affiliate status is enabled
        link:
          maxLength: 256
          minLength: 0
          type: string
          description: |-
            A link provided to affiliates for tracking and promotional purposes.
            Must not exceed 256 characters.
          nullable: true
        returnPercentage:
          maximum: 100
          minimum: 0
          type: integer
          description: |-
            The percentage of the return that an affiliate receives.
            Must be between 0 and 100 inclusive.
          format: int32
          nullable: true
        percentageOff:
          maximum: 100
          minimum: 0
          type: integer
          description: |-
            The percentage discount offered by the store affiliate.
            Must be between 0 and 100 inclusive.
          format: int32
          nullable: true
        balance:
          maximum: 1.7976931348623157e+308
          minimum: 0
          type: number
          description: >-
            Represents the balance of the affiliate, typically indicating the
            amount earned through affiliations.

            Must be a non-negative value.
          format: double
      additionalProperties: false
      description: Form for store owners to edit affiliate status.
  securitySchemes:
    bearer:
      type: http
      description: Your API key goes here
      scheme: bearer
      bearerFormat: JWT

````