---
title: "Create credit grant"
method: POST
path: "/creditgrants"
tags: ["Credit Grants"]
---

# Create credit grant

`POST /creditgrants`

Use when giving a customer or plan credits (e.g. prepaid balance or promotional credits). Scope can be plan or subscription; supports start/end dates.

## Request body

- CreateCreditGrantRequest
  - `cadence` 'ONETIME' | 'RECURRING', required
  - `conversion_rate` string — amount in the currency = number of credits * conversion_rate ex if conversion_rate is 1, then 1 USD = 1 credit ex if conversion_rate is 2, then 1 USD = 0.5 credits ex if conversion_rate is 0.5, then 1 USD = 2 credits
  - `credits` string, required
  - `end_date` string, date-time
  - `expiration_duration` integer
  - `expiration_duration_unit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
  - `expiration_type` 'NEVER' | 'DURATION' | 'BILLING_CYCLE'
  - `metadata` TypesMetadata
  - `name` string, required
  - `period` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'ANNUAL' | 'QUARTERLY' | 'HALF_YEARLY'
  - `period_count` integer
  - `plan_id` string
  - `priority` integer
  - `scope` 'PLAN' | 'SUBSCRIPTION', required
  - `start_date` string, date-time
  - `subscription_id` string
  - `topup_conversion_rate` string — topup_conversion_rate is the conversion rate for the topup to the currency ex if topup_conversion_rate is 1, then 1 USD = 1 credit ex if topup_conversion_rate is 2, then 1 USD = 0.5 credits ex if topup_conversion_rate is 0.5, then 1 USD = 2 credits

## Response `201`

Created

- CreditGrantResponse
  - `cadence` 'ONETIME' | 'RECURRING'
  - `conversion_rate` string — amount in the currency = number of credits * conversion_rate ex if conversion_rate is 1, then 1 USD = 1 credit ex if conversion_rate is 2, then 1 USD = 0.5 credits ex if conversion_rate is 0.5, then 1 USD = 2 credits
  - `created_at` string, date-time
  - `created_by` string
  - `credit_grant_anchor` string, date-time
  - `credits` string
  - `end_date` string, date-time
  - `environment_id` string
  - `expiration_duration` integer
  - `expiration_duration_unit` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
  - `expiration_type` 'NEVER' | 'DURATION' | 'BILLING_CYCLE'
  - `id` string
  - `metadata` TypesMetadata
  - `name` string
  - `period` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'ANNUAL' | 'QUARTERLY' | 'HALF_YEARLY'
  - `period_count` integer
  - `plan_id` string
  - `priority` integer
  - `scope` 'PLAN' | 'SUBSCRIPTION'
  - `start_date` string, date-time
  - `status` 'published' | 'deleted' | 'archived'
  - `subscription_id` string
  - `tenant_id` string
  - `topup_conversion_rate` string — topup_conversion_rate is the conversion rate for the topup to the currency ex if topup_conversion_rate is 1, then 1 USD = 1 credit ex if topup_conversion_rate is 2, then 1 USD = 0.5 credits ex if topup_conversion_rate is 0.5, then 1 USD = 2 credits
  - `updated_at` string, date-time
  - `updated_by` string

## Other responses

- `400` — Invalid request
- `500` — Server error

## Changes

- **2026-05-18** `8ec2edea6b20` — 4 warning
  - removed the optional property `details` from the response with the `400` status
  - removed the optional property `details` from the response with the `500` status
  - added the new `too_many_requests` enum value to the `code` response property for the response status `400`
  - added the new `too_many_requests` enum value to the `code` response property for the response status `500`
- **2026-04-06** `95af41a12111` — 4 warning, 8 info
  - removed the optional property `error` from the response with the `400` status
  - removed the optional property `error` from the response with the `500` status
  - removed the optional property `success` from the response with the `400` status
  - removed the optional property `success` from the response with the `500` status
  - …8 more
- **2026-04-04** `9013edc21339` — 2 breaking
  - the `end_date` request property type/format changed from `string`/`` to `string`/`date-time`
  - the `start_date` request property type/format changed from `string`/`` to `string`/`date-time`

[Change history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/creditgrants/post.md)

---

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