---
title: "Create a commission"
method: POST
path: "/commissions"
tags: ["Commissions"]
---

# Create a commission

`POST /commissions`

With this endpoint you can create a commission. 
 <Tip>**HTTP Request** <br/>`POST https://api.firstpromoter.com/api/v2/company/commissions`</Tip>

## Headers

- `Account-ID` string, required

## Request body

- union
  - object
    - `commission_type` 'sale', required — The commission type
    - `referral_id` integer, required — Referral id. Required for sale commission type.
    - `plan_id` integer — One of the items id from price_ids
    - `sale_amount` integer, required — Sale amount in cents. Required for sale commission type.
    - `event_id` string — The ID of the event that generated the sale from billing provider
    - `event_date` string, date — The date of the event that generated the sale
    - `internal_note` string — Internal note visible only by the team
    - `external_note` string — External note visible by the promoter
    - `unit` 'cash' | 'credits' | 'points' | 'free_months' | 'mon_discount' | 'discount_per' — Set the reward unit type
    - `notify_promoter` boolean — If true a notification email is sent to promoter if enabled on Emails section
    - `billing_period` 'monthly' | 'yearly' | 'one_time' — The billing period of the event that generated the sale
  - object
    - `commission_type` 'custom', required — The commission type
    - `promoter_campaign_id` integer, required — PromoterCampaign id. Required for custom commission type. This ID is not the promoter’s ID or the campaign’s ID. It’s the linking record that defines the promoter’s participation in that campaign. You can find this id in each object in the promoter_campaigns array when you get the details of the promoter.
    - `amount` integer, required — Commission amount in cents. Required for custom commission type.
    - `event_id` string — The ID of the event that generated the sale from billing provider
    - `event_date` string, date — The date of the event that generated the sale
    - `internal_note` string — Internal note visible only by the team
    - `external_note` string — External note visible by the promoter
    - `unit` 'cash' | 'credits' | 'points' | 'free_months' | 'mon_discount' | 'discount_per' — Set the reward unit type
    - `notify_promoter` boolean — If true a notification email is sent to promoter if enabled on Emails section
    - `billing_period` 'monthly' | 'yearly' | 'one_time' — The billing period of the event that generated the sale

## Response `200`

Successfully retrieved commissions

- Commission[]
  - `id` integer — Commission ID
  - `status` 'pending' | 'approved' | 'denied' — Current status of the commission
  - `metadata` object — Additional metadata about the commission
  - `is_self_referral` boolean, nullable — Whether this is a self-referral
  - `commission_type` 'sale' | 'custom' — Type of commission
  - `created_by_user_email` string, nullable — Email of the user who created the commission
  - `created_by_user_at` string, date-time, nullable — Timestamp when the user created the commission
  - `sale_amount` integer — Amount of the sale
  - `original_sale_amount` integer — Original amount of the sale
  - `original_sale_currency` string, nullable — Currency of the original sale
  - `event_id` string, nullable — ID of the event that generated the commission
  - `plan_id` string, nullable — Plan ID associated with the commission
  - `tier` integer — Reward tier
  - `internal_note` string, nullable — Internal note visible only to the team
  - `external_note` string, nullable — External note visible to the promoter
  - `unit` 'cash' | 'credits' | 'points' | 'free_months' | 'mon_discount' | 'discount_per' — Unit type for the reward
  - `fraud_check` 'no_suspicion' | 'same_ip_suspicion' | 'same_promoter_email' | 'ad_source', nullable — Result of fraud check
  - `amount` integer — Commission amount
  - `is_paid` boolean — Whether the commission has been paid
  - `is_split` boolean — Whether the commission is split among multiple promoters
  - `created_at` string, date-time — Creation timestamp
  - `status_updated_at` string, date-time, nullable — Last status update timestamp
  - `promoter_campaign` object
    - `id` integer — Promoter campaign ID
    - `campaign_id` integer — Campaign ID
    - `promoter_id` integer — Promoter ID
    - `created_at` string, date-time — Creation timestamp
    - `promoter` object
      - `id` integer — Promoter ID
      - `email` string — Promoter email
      - `name` string — Promoter name
    - `campaign` object
      - `id` integer — Campaign ID
      - `name` string — Campaign name
      - `color` string, nullable — Campaign color
  - `referral` object, nullable
    - `id` integer — Referral ID
    - `email` string — Referral email
    - `uid` string — Referral UID
  - `reward` object
    - `id` integer — Reward ID
    - `name` string — Reward name
  - `split_details` object, nullable — Commission split details from the associated referral, when the referral is shared between promoters

## Other responses

- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/firstpromoter/apis/firstpromoter-batch-processes-api.md) · [All operations](https://skmtc.net/firstpromoter/apis/firstpromoter-batch-processes-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/firstpromoter/firstpromoter-batch-processes-api/versions/e15f0d026ccf/schema)
