---
title: "Create company token transaction"
method: POST
path: "/company_token_transactions"
tags: ["Company token transactions"]
---

# Create company token transaction

`POST /company_token_transactions`

Create a token transaction to add, subtract, or transfer tokens for a member within a company.

Required permissions:
 - `company_token_transaction:create`
 - `member:basic:read`
 - `company:basic:read`

## Request body

- union — Parameters for CreateCompanyTokenTransaction
  - object — Autogenerated input type of CreateCompanyTokenTransaction
    - `amount` number, required — The positive number of tokens to transact. For example, 100.0 for 100 tokens.
    - `company_id` string, required — The unique identifier of the company to create the transaction in, starting with 'biz_'.
    - `description` string, nullable — A human-readable description of why the transaction was created.
    - `destination_user_id` string, required — The unique identifier of the user receiving the tokens. Required when the transaction type is 'transfer'.
    - `idempotency_key` string, nullable — A unique key to prevent duplicate transactions. Use a UUID or similar unique string.
    - `transaction_type` 'transfer', required
    - `user_id` string, required — The unique identifier of the user whose token balance will be affected, starting with 'user_'.
  - object — Autogenerated input type of CreateCompanyTokenTransaction
    - `amount` number, required — The positive number of tokens to transact. For example, 100.0 for 100 tokens.
    - `company_id` string, required — The unique identifier of the company to create the transaction in, starting with 'biz_'.
    - `description` string, nullable — A human-readable description of why the transaction was created.
    - `idempotency_key` string, nullable — A unique key to prevent duplicate transactions. Use a UUID or similar unique string.
    - `transaction_type` 'add', required
    - `user_id` string, required — The unique identifier of the user whose token balance will be affected, starting with 'user_'.
  - object — Autogenerated input type of CreateCompanyTokenTransaction
    - `amount` number, required — The positive number of tokens to transact. For example, 100.0 for 100 tokens.
    - `company_id` string, required — The unique identifier of the company to create the transaction in, starting with 'biz_'.
    - `description` string, nullable — A human-readable description of why the transaction was created.
    - `idempotency_key` string, nullable — A unique key to prevent duplicate transactions. Use a UUID or similar unique string.
    - `transaction_type` 'subtract', required
    - `user_id` string, required — The unique identifier of the user whose token balance will be affected, starting with 'user_'.

## Response `200`

A successful response

- CompanyTokenTransaction — A token transaction records a credit or debit to a member's token balance within a company, including transfers between members.
  - `amount` number, required — The token amount for this transaction. Always a positive value regardless of transaction type.
  - `company` object, required — The company whose token balance this transaction affects.
    - `id` string, required — The unique identifier for the company.
    - `route` string, required — The slug/route of the company on the Whop site.
    - `title` string, required — The written name of the company.
  - `created_at` string, date-time, required — The datetime the company token transaction was created.
  - `description` string, nullable, required — Free-text description explaining the reason for this token transaction. Null if no description was provided.
  - `id` string, required — The unique identifier for the company token transaction.
  - `idempotency_key` string, nullable, required — A unique key used to prevent duplicate transactions when retrying API requests. Null if no idempotency key was provided.
  - `linked_transaction_id` string, nullable, required — The ID of the corresponding transaction on the other side of a transfer. Null if this is not a transfer transaction.
  - `member` object, required — The member whose token balance was affected by this transaction.
    - `id` string, required — The unique identifier for the company member.
  - `transaction_type` 'add' | 'subtract' | 'transfer', required — The type of token transaction
  - `user` object, required — The user whose token balance was affected by this transaction.
    - `id` string, required — The unique identifier for the user.
    - `name` string, nullable, required — The user's display name shown on their public profile.
    - `username` string, required — The user's unique username shown on their public profile.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `422` — Verification required
- `429` — Too many requests
- `500` — Internal server error

---

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