> ## 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.

# Record Affiliate Payout

> Requires the `stores.affiliates.update` permission.



## OpenAPI

````yaml POST /stores/{storeId}/affiliates/{customerId}/payouts
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}/payouts:
    post:
      tags:
        - Affiliate
      summary: >-
        Record a new payout (external or store-credit) for an affiliate (by
        customerId).
      description: Requires the `stores.affiliates.update` permission.
      parameters:
        - name: storeId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: customerId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAffiliatePayoutForm'
      responses:
        '200':
          description: The object was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AffiliatePayoutResponse'
        '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'
components:
  schemas:
    CreateAffiliatePayoutForm:
      required:
        - amount
        - convertedToStoreCredit
      type: object
      properties:
        amount:
          maximum: 1.7976931348623157e+308
          minimum: 0.01
          type: number
          description: The amount to pay out or convert.
          format: double
        convertedToStoreCredit:
          type: boolean
          description: True = convert into store credit; false = external payout.
        comment:
          maxLength: 256
          type: string
          description: Optional note for auditing.
          nullable: true
      additionalProperties: false
      description: Form used by an admin to record a manual affiliate payout.
    AffiliatePayoutResponse:
      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/AffiliatePayout'
      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.
    AffiliatePayout:
      required:
        - affiliateId
        - amount
        - convertedToStoreCredit
        - customerId
        - dateCreated
        - id
        - initiatedByIp
        - isVoided
        - storeId
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the entity
          format: uuid
        dateCreated:
          type: string
          description: The date the entity was created in the database
          format: date-time
        customerId:
          type: string
          description: The affiliate customer who earned the payout.
          format: uuid
        storeId:
          type: string
          description: The store in which the affiliate earned these commissions.
          format: uuid
        affiliateId:
          type: string
          description: The ID of the affiliate who paid out
          format: uuid
        amount:
          type: number
          description: The amount paid out to the affiliate (or converted to store credit).
          format: double
        convertedToStoreCredit:
          type: boolean
          description: >-
            Whether this payout was converted into store‐credit (true) or
            represents an external payout (false).
        comment:
          maxLength: 256
          type: string
          description: (Optional) A note or reason for this payout, for auditing.
          nullable: true
        initiatedByUserId:
          maxLength: 36
          type: string
          description: >-
            The user who initiated the payout, if this is null then it was
            initiated by the customer
          nullable: true
        initiatedByIp:
          maxLength: 45
          minLength: 1
          type: string
          description: The IP address who initiated the payout
        isVoided:
          type: boolean
          description: Indicates whether the affiliate payout has been voided.
        voidDate:
          type: string
          description: The date and time when the payout was voided, if applicable.
          format: date-time
          nullable: true
        voidedByUserId:
          maxLength: 36
          type: string
          description: The user who voided the affiliate payout.
          nullable: true
        voidReason:
          maxLength: 256
          type: string
          description: The reason provided when an affiliate payout is voided.
          nullable: true
      additionalProperties: false
      description: >-
        A record of an affiliate’s earnings being paid out (e.g., converted into
        store credit).
  securitySchemes:
    bearer:
      type: http
      description: Your API key goes here
      scheme: bearer
      bearerFormat: JWT

````