---
title: "Save Commission Report"
method: POST
path: "/inventory/commission-reports/save"
tags: ["provider", "inventory"]
---

# Save Commission Report

`POST /inventory/commission-reports/save`

Save a commission report to the database

## Headers

- `TENANT` string, required
- `API-KEY` string, required

## Request body

- CommissionReportDetailInput
  - `commissionStructure` CommissionStructureDetailInput, required
    - `id` string — Unique identifier for the commission group
    - `name` string, required — Name of the commission group
    - `description` string, nullable — Optional description of the commission group
    - `commissions` CommissionDetailInput[], nullable — Commissions in this group
      - `id` string — Unique identifier for the commission
      - `itemId` string, nullable — Optional item this commission applies to (includes services and packages)
      - `itemCategory` string, nullable — Optional category name this commission applies to (references category.name)
      - `itemIsPhysical` boolean, nullable — Optional filter by whether item is physical
      - `totalSalesAmount` integer, nullable — Optional minimum total sales amount threshold in cents
      - `commissionStructureId` string, required — Commission structure this commission belongs to
      - `percentage` number, nullable — Commission percentage (0.0 to 1.0)
      - `amount` integer, nullable — Fixed commission amount in cents
      - `deductCost` boolean — Whether to deduct item cost before calculating commission (services only)
      - `isArchived` boolean — Whether the commission is archived
      - `updatedDate` string, date-time, nullable — When the commission was last updated
      - `createdDate` string, date-time, nullable — When the commission was created
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
    - `providers` ProviderTiny[], nullable — Providers in this group
      - `id` string, required
      - `firstName` string, required
      - `lastName` string, nullable
      - `email` string, nullable
      - `createdDate` string, date-time, nullable
  - `startDate` string, date, required — Start date of the report
  - `endDate` string, date, required — End date of the report
  - `payouts` CommissionPayoutDetailInput[], required — Payouts for this commission structure
    - `id` string — Unique identifier for the commission payout
    - `commissionReportId` string, required — Commission report this payout belongs to
    - `commissionId` string, required — Commission this payout belongs to
    - `providerId` string, required — Provider this payout belongs to
    - `amount` integer, required — Amount of the payout
    - `createdDate` string, date-time, nullable — When the payout was created
    - `provider` ProviderTiny, required
      - `id` string, required
      - `firstName` string, required
      - `lastName` string, nullable
      - `email` string, nullable
      - `createdDate` string, date-time, nullable
    - `commission` CommissionDetailInput, required
      - `id` string — Unique identifier for the commission
      - `itemId` string, nullable — Optional item this commission applies to (includes services and packages)
      - `itemCategory` string, nullable — Optional category name this commission applies to (references category.name)
      - `itemIsPhysical` boolean, nullable — Optional filter by whether item is physical
      - `totalSalesAmount` integer, nullable — Optional minimum total sales amount threshold in cents
      - `commissionStructureId` string, required — Commission structure this commission belongs to
      - `percentage` number, nullable — Commission percentage (0.0 to 1.0)
      - `amount` integer, nullable — Fixed commission amount in cents
      - `deductCost` boolean — Whether to deduct item cost before calculating commission (services only)
      - `isArchived` boolean — Whether the commission is archived
      - `updatedDate` string, date-time, nullable — When the commission was last updated
      - `createdDate` string, date-time, nullable — When the commission was created
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
    - `chargeItems` ChargeItemDetailInput[], required — Charges this payout is from
      - `id` string, nullable — Unique identifier for the charge item
      - `itemId` string, nullable — Optional unique identifier for the item
      - `chargeId` string, required — Identifier of the charge this item is associated with
      - `name` string, nullable — Name of the item (None for items with associated inventory item)
      - `description` string, nullable — Description of the item
      - `quantity` integer, required — Quantity of the item being charged
      - `discountAmount` integer, nullable — Discount amount for the item
      - `discountPercentage` number, nullable — Discount percentage for the item
      - `discountReason` string, nullable — Reason for discount
      - `price` integer, required — Price of the item in cents
      - `soldPackageId` string, nullable — Unique identifier for the sold package usage
      - `bankedQuantity` integer, nullable — Quantity to bank for later use
      - `bankedItemId` string, nullable — ID of banked item being used (for tracking usage)
      - `issuedDiscountId` string, nullable — Unique identifier for the specific issued discount instance used
      - `soldByProviderId` string, nullable — Unique identifier for the provider who sold the item
      - `taxAmount` integer, nullable — Tax amount for the item in cents
      - `pricingId` string, nullable — Unique identifier for the pricing for the item
      - `shipmentIds` string[], nullable — Optional list of shipment IDs to reduce the stock quantity of
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
      - `locationId` string, nullable — Location ID where the sale occurred
      - `locationName` string, nullable — Location name where the sale occurred
      - `saleDate` string, date-time, nullable — Date when the sale occurred
    - `events` EventTinyInput[], required — Events this payout is from
      - `id` string, required
      - `title` string, required
      - `start` string, date-time, required
      - `end` string, date-time, required
      - `type` 'APPOINTMENT' | 'SHIFT' | 'BLOCK', required
      - `location` LocationTiny
        - `id` string, required
        - `isVirtual` boolean, required
      - `attendees` AttendeeDetailInput[]
        - `user` UserTiny, required
          - `id` string, required — The unique identifier for the user.
          - `firstName` string, nullable — The user's first name.
          - `lastName` string, nullable — The user's last name.
          - `phoneNumber` string, nullable — The user's phone number.
          - `email` string, nullable — The user's email address.
          - `type` 'PROVIDER' | 'PATIENT' | 'ASSISTANT', required
          - `locationId` string, nullable — The location of the user.
        - `inviteStatus` 'PENDING' | 'ACCEPTED' | 'REJECTED', required
      - `status` 'PENDING' | 'RESERVED' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED' | 'OVERRIDABLE' | 'NO_SHOW', required
      - `recurringEventId` string, nullable
      - `recurringEvent` RecurringEventDetail
        - `id` string, required
        - `rrule` string, required
        - `startDate` string, date-time, required
        - `durationMinutes` integer, required
        - `timezone` string, required
        - `serviceIds` string[], nullable
        - `capacity` integer, nullable
        - `type` 'APPOINTMENT' | 'SHIFT' | 'BLOCK', required
        - `title` string, required
        - `attendeeIds` string[], nullable
        - `locationId` string, nullable
        - `organizerId` string, required
      - `eventServices` EventServiceTiny[]
        - `service` ServiceTiny, required
          - `id` string, required
          - `duration` integer, required
          - `name` string, required
          - `locationIds` string[], nullable
          - `color` string, required
        - `providerId` string, nullable
        - `bookables` EventServiceBookable[], nullable
          - `eventId` string, required
          - `serviceId` string, required
          - `bookableId` string, required
          - `start` string, date-time, required
          - `end` string, date-time, required
        - `start` string, date-time, nullable
        - `end` string, date-time, nullable
        - `externalId` string, nullable
        - `isArchived` boolean, nullable
      - `icons` EventIcon[]
      - `capacity` integer, nullable
    - `soldPackages` SoldPackageInput[], required — Sold packages this payout is from
      - `id` string — Unique identifier for the sold package
      - `packageId` string, required — Package ID that was sold
      - `patientId` string, required — Patient ID who purchased the package
      - `chargeItemId` string, required — Charge item ID associated with the package purchase
      - `status` 'USED' | 'ACTIVE' | 'CANCELLED', required
      - `package` PackageInput
        - `id` string — Unique identifier for the package
        - `name` string, required — Name of the package
        - `description` string, nullable — Optional description of the package
        - `isArchived` boolean — Whether the package is archived
        - `price` integer, required — Price of the package in cents
        - `internalNotes` string, nullable — Optional internal notes for the package
        - `items` PackageItemInput[], nullable — Items included in the package
          - `id` string — Unique identifier for the package item
          - `packageId` string, required — Package ID this item belongs to
          - `itemId` string, required — Item ID for this package item
          - `quantity` integer, nullable — Quantity of the item in the package
          - `price` integer, required — Price of the item in the package in cents
          - `item` ItemTiny
            - `id` string — Unique identifier for the item
            - `name` string, required — Name of the item
            - `brandName` string, nullable — Optional brand name of the item
            - `description` string, nullable — Optional description of the item
            - `price` integer, required — Price of the item in cents
            - `category` string, nullable — Category name (references category.name)
            - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
            - `isPhysical` boolean — Whether the item is physical
            - `isArchived` boolean — Whether the item is archived
            - `internalNotes` string, nullable — Optional internal notes for the item
            - `taxable` boolean — Whether the item is subject to taxes
            - `sortOrder` integer, nullable — Optional sort order for the item
            - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
            - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
        - `category` string, nullable — Category name (references category.name)
      - `createdDate` string, date-time, required — Date the package was created
      - `updatedDate` string, date-time, nullable — Date the package was updated
  - `totalPayout` integer, required — Total payout for this commission structure
  - `commissionStructureId` string, required — Commission structure this report belongs to
  - `creatorId` string, required — Creator of the report
  - `id` string, required — Unique identifier for the commission report
  - `createdDate` string, date-time, nullable — When the report was created
  - `updatedDate` string, date-time, nullable — When the report was last updated
  - `isArchived` boolean — Whether the report is archived

## Response `200`

Successful Response

- CommissionReportDetailOutput
  - `commissionStructure` CommissionStructureDetailOutput, required
    - `id` string — Unique identifier for the commission group
    - `name` string, required — Name of the commission group
    - `description` string, nullable — Optional description of the commission group
    - `commissions` CommissionDetailOutput[], nullable — Commissions in this group
      - `id` string — Unique identifier for the commission
      - `itemId` string, nullable — Optional item this commission applies to (includes services and packages)
      - `itemCategory` string, nullable — Optional category name this commission applies to (references category.name)
      - `itemIsPhysical` boolean, nullable — Optional filter by whether item is physical
      - `totalSalesAmount` integer, nullable — Optional minimum total sales amount threshold in cents
      - `commissionStructureId` string, required — Commission structure this commission belongs to
      - `percentage` number, nullable — Commission percentage (0.0 to 1.0)
      - `amount` integer, nullable — Fixed commission amount in cents
      - `deductCost` boolean — Whether to deduct item cost before calculating commission (services only)
      - `isArchived` boolean — Whether the commission is archived
      - `updatedDate` string, date-time, nullable — When the commission was last updated
      - `createdDate` string, date-time, nullable — When the commission was created
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
    - `providers` ProviderTiny[], nullable — Providers in this group
      - `id` string, required
      - `firstName` string, required
      - `lastName` string, nullable
      - `email` string, nullable
      - `createdDate` string, date-time, nullable
  - `startDate` string, date, required — Start date of the report
  - `endDate` string, date, required — End date of the report
  - `payouts` CommissionPayoutDetailOutput[], required — Payouts for this commission structure
    - `id` string — Unique identifier for the commission payout
    - `commissionReportId` string, required — Commission report this payout belongs to
    - `commissionId` string, required — Commission this payout belongs to
    - `providerId` string, required — Provider this payout belongs to
    - `amount` integer, required — Amount of the payout
    - `createdDate` string, date-time, nullable — When the payout was created
    - `provider` ProviderTiny, required
      - `id` string, required
      - `firstName` string, required
      - `lastName` string, nullable
      - `email` string, nullable
      - `createdDate` string, date-time, nullable
    - `commission` CommissionDetailOutput, required
      - `id` string — Unique identifier for the commission
      - `itemId` string, nullable — Optional item this commission applies to (includes services and packages)
      - `itemCategory` string, nullable — Optional category name this commission applies to (references category.name)
      - `itemIsPhysical` boolean, nullable — Optional filter by whether item is physical
      - `totalSalesAmount` integer, nullable — Optional minimum total sales amount threshold in cents
      - `commissionStructureId` string, required — Commission structure this commission belongs to
      - `percentage` number, nullable — Commission percentage (0.0 to 1.0)
      - `amount` integer, nullable — Fixed commission amount in cents
      - `deductCost` boolean — Whether to deduct item cost before calculating commission (services only)
      - `isArchived` boolean — Whether the commission is archived
      - `updatedDate` string, date-time, nullable — When the commission was last updated
      - `createdDate` string, date-time, nullable — When the commission was created
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
    - `chargeItems` ChargeItemDetailOutput[], required — Charges this payout is from
      - `id` string, nullable — Unique identifier for the charge item
      - `itemId` string, nullable — Optional unique identifier for the item
      - `chargeId` string, required — Identifier of the charge this item is associated with
      - `name` string, nullable — Name of the item (None for items with associated inventory item)
      - `description` string, nullable — Description of the item
      - `quantity` integer, required — Quantity of the item being charged
      - `discountAmount` integer, nullable — Discount amount for the item
      - `discountPercentage` number, nullable — Discount percentage for the item
      - `discountReason` string, nullable — Reason for discount
      - `price` integer, required — Price of the item in cents
      - `soldPackageId` string, nullable — Unique identifier for the sold package usage
      - `bankedQuantity` integer, nullable — Quantity to bank for later use
      - `bankedItemId` string, nullable — ID of banked item being used (for tracking usage)
      - `issuedDiscountId` string, nullable — Unique identifier for the specific issued discount instance used
      - `soldByProviderId` string, nullable — Unique identifier for the provider who sold the item
      - `taxAmount` integer, nullable — Tax amount for the item in cents
      - `pricingId` string, nullable — Unique identifier for the pricing for the item
      - `shipmentIds` string[], nullable — Optional list of shipment IDs to reduce the stock quantity of
      - `item` ItemTiny
        - `id` string — Unique identifier for the item
        - `name` string, required — Name of the item
        - `brandName` string, nullable — Optional brand name of the item
        - `description` string, nullable — Optional description of the item
        - `price` integer, required — Price of the item in cents
        - `category` string, nullable — Category name (references category.name)
        - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
        - `isPhysical` boolean — Whether the item is physical
        - `isArchived` boolean — Whether the item is archived
        - `internalNotes` string, nullable — Optional internal notes for the item
        - `taxable` boolean — Whether the item is subject to taxes
        - `sortOrder` integer, nullable — Optional sort order for the item
        - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
        - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
      - `locationId` string, nullable — Location ID where the sale occurred
      - `locationName` string, nullable — Location name where the sale occurred
      - `saleDate` string, date-time, nullable — Date when the sale occurred
    - `events` EventTinyOutput[], required — Events this payout is from
      - `id` string, required
      - `title` string, required
      - `start` string, date-time, required
      - `end` string, date-time, required
      - `type` 'APPOINTMENT' | 'SHIFT' | 'BLOCK', required
      - `location` LocationTiny
        - `id` string, required
        - `isVirtual` boolean, required
      - `attendees` AttendeeDetailOutput[]
        - `user` UserTiny, required
          - `id` string, required — The unique identifier for the user.
          - `firstName` string, nullable — The user's first name.
          - `lastName` string, nullable — The user's last name.
          - `phoneNumber` string, nullable — The user's phone number.
          - `email` string, nullable — The user's email address.
          - `type` 'PROVIDER' | 'PATIENT' | 'ASSISTANT', required
          - `locationId` string, nullable — The location of the user.
        - `inviteStatus` 'PENDING' | 'ACCEPTED' | 'REJECTED', required
      - `status` 'PENDING' | 'RESERVED' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED' | 'OVERRIDABLE' | 'NO_SHOW', required
      - `recurringEventId` string, nullable
      - `recurringEvent` RecurringEventDetail
        - `id` string, required
        - `rrule` string, required
        - `startDate` string, date-time, required
        - `durationMinutes` integer, required
        - `timezone` string, required
        - `serviceIds` string[], nullable
        - `capacity` integer, nullable
        - `type` 'APPOINTMENT' | 'SHIFT' | 'BLOCK', required
        - `title` string, required
        - `attendeeIds` string[], nullable
        - `locationId` string, nullable
        - `organizerId` string, required
      - `eventServices` EventServiceTiny[]
        - `service` ServiceTiny, required
          - `id` string, required
          - `duration` integer, required
          - `name` string, required
          - `locationIds` string[], nullable
          - `color` string, required
        - `providerId` string, nullable
        - `bookables` EventServiceBookable[], nullable
          - `eventId` string, required
          - `serviceId` string, required
          - `bookableId` string, required
          - `start` string, date-time, required
          - `end` string, date-time, required
        - `start` string, date-time, nullable
        - `end` string, date-time, nullable
        - `externalId` string, nullable
        - `isArchived` boolean, nullable
      - `icons` EventIcon[]
      - `capacity` integer, nullable
    - `soldPackages` SoldPackageOutput[], required — Sold packages this payout is from
      - `id` string — Unique identifier for the sold package
      - `packageId` string, required — Package ID that was sold
      - `patientId` string, required — Patient ID who purchased the package
      - `chargeItemId` string, required — Charge item ID associated with the package purchase
      - `status` 'USED' | 'ACTIVE' | 'CANCELLED', required
      - `package` PackageOutput
        - `id` string — Unique identifier for the package
        - `name` string, required — Name of the package
        - `description` string, nullable — Optional description of the package
        - `isArchived` boolean — Whether the package is archived
        - `price` integer, required — Price of the package in cents
        - `internalNotes` string, nullable — Optional internal notes for the package
        - `items` PackageItemOutput[], nullable — Items included in the package
          - `id` string — Unique identifier for the package item
          - `packageId` string, required — Package ID this item belongs to
          - `itemId` string, required — Item ID for this package item
          - `quantity` integer, nullable — Quantity of the item in the package
          - `price` integer, required — Price of the item in the package in cents
          - `item` ItemTiny
            - `id` string — Unique identifier for the item
            - `name` string, required — Name of the item
            - `brandName` string, nullable — Optional brand name of the item
            - `description` string, nullable — Optional description of the item
            - `price` integer, required — Price of the item in cents
            - `category` string, nullable — Category name (references category.name)
            - `unit` 'AMPOULES' | 'APPLICATORS' | 'BOTTLES' | 'BOXES' | 'CAPSULES' | 'CUPS' | 'DOSES' | 'G_PER_ML' | 'GRAMS' | 'IU' | 'IU_PER_ML' | 'OUNCES' | 'FLUID_OUNCES' | 'KG' | 'KITS' | 'LITERS' | 'MCG' | 'MG' | 'MG_PER_ML' | 'ML' | 'MMOL' | 'MICROGRAM_PER_ML' | 'PACKS' | 'PAIRS' | 'PATCHES' | 'PERCENTAGE' | 'PIECES' | 'POUCHES' | 'ROLLS' | 'SACHETS' | 'SHEETS' | 'SPRAYS' | 'STRIPS' | 'SYRINGES' | 'TABLETS' | 'TABLETS_PER_DAY' | 'TESTS' | 'TUBES' | 'UNITS' | 'VIALS' | 'TREATMENTS' | 'SESSIONS' | 'PULSES' | 'JOULES' | 'CENTIMETERS' | 'THREAD_COUNT' | 'INJECTIONS' | 'WRINKLE_UNITS' | 'POUNDS' | 'FEET' | 'INCHES'
            - `isPhysical` boolean — Whether the item is physical
            - `isArchived` boolean — Whether the item is archived
            - `internalNotes` string, nullable — Optional internal notes for the item
            - `taxable` boolean — Whether the item is subject to taxes
            - `sortOrder` integer, nullable — Optional sort order for the item
            - `allowCustomPricing` boolean — Whether custom pricing is allowed for this item
            - `type` 'ITEM' | 'PRODUCT' | 'MEDICATION' | 'SERVICE' | 'PACKAGE' | 'MEMBERSHIP'
        - `category` string, nullable — Category name (references category.name)
      - `createdDate` string, date-time, required — Date the package was created
      - `updatedDate` string, date-time, nullable — Date the package was updated
  - `totalPayout` integer, required — Total payout for this commission structure
  - `commissionStructureId` string, required — Commission structure this report belongs to
  - `creatorId` string, required — Creator of the report
  - `id` string, required — Unique identifier for the commission report
  - `createdDate` string, date-time, nullable — When the report was created
  - `updatedDate` string, date-time, nullable — When the report was last updated
  - `isArchived` boolean — Whether the report is archived

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/decodahealth/apis/decoda-api.md) · [All operations](https://skmtc.dev/decodahealth/apis/decoda-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/decodahealth/decoda-api/revisions/4939a65a89d2/schema)
