---
title: "Create a new referral_code"
method: POST
path: "/v1/referral_codes/"
---

# Create a new referral_code

`POST /v1/referral_codes/`

## Request

- Base URL: `https://app.iconik.io/API/auth`
- URL: `https://app.iconik.io/API/auth/v1/referral_codes/`
- Auth: none declared. Required headers: `App-ID`, `Auth-Token`
- TypeScript: <https://skmtc.dev/iconik/apis/iconik-auth/docs/v1/referral_codes/post.ts> (a function with typed inputs; its response is checked against the schema)

## Headers

- `App-ID` string, required
- `Auth-Token` string, required

## Request body

- ReferralCodeSchema
  - `billing_tier` 'PAYGO' | 'PRO' | 'ENTERPRISE' | 'ENTERPRISE_LEGACY_2025' | 'PRO_LEGACY_2025', nullable
  - `code` string, required
  - `credit_expiry_days` integer, nullable
  - `do_not_delete` boolean, nullable
  - `freeze_date` string, date-time, nullable
  - `is_plg` boolean, nullable
  - `manage_system_domain_id` string, uuid, nullable
  - `ordway_customer_id` string, nullable
  - `sales_force_id` string, nullable
  - `valid_to` string, date-time, required
  - `value` number, required

## Response `201`

Returns a created referral_code

- ReferralCodeSchema
  - `billing_tier` 'PAYGO' | 'PRO' | 'ENTERPRISE' | 'ENTERPRISE_LEGACY_2025' | 'PRO_LEGACY_2025', nullable
  - `code` string, required
  - `credit_expiry_days` integer, nullable
  - `do_not_delete` boolean, nullable
  - `freeze_date` string, date-time, nullable
  - `is_plg` boolean, nullable
  - `manage_system_domain_id` string, uuid, nullable
  - `ordway_customer_id` string, nullable
  - `sales_force_id` string, nullable
  - `valid_to` string, date-time, required
  - `value` number, required

## Other responses

- `400`: Bad request
- `401`: Token is invalid
- `403`: Permission denied
- `409`: Code already exists
- `default`: Error response

---

[API](https://skmtc.dev/iconik/apis/iconik-auth.md) - [All operations](https://skmtc.dev/iconik/apis/iconik-auth/llms.txt) - [OpenAPI document](https://skmtc.dev/iconik/apis/iconik-auth/revisions/5dde985bb742?raw)
