/api/v1/subscriptions
Create a subscription
Create a new subscription in your organization.
Last updated
Request
POST /api/v1/subscriptions
Requires subscriptions:create. See token permissions. Every listed permission is required for this endpoint.
Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json.
Request body
| Field | Type | Usage |
|---|---|---|
category_id |
integer | Required on creation. Subscription category ID from options. |
name |
string | Required on creation. Up to 255 characters; cannot be empty when supplied. |
vendor_name |
string or null | Optional. Up to 255 characters. |
plan_type |
string or null | Optional. Up to 255 characters. |
billing_type |
string | Creation only, required. free, purchase, or subscription. |
price_model |
string | Required for paid creation. lump_sum or per_license. Free subscriptions have no billing details. |
license_count |
integer or null | Required for per-license pricing. 1–100,000,000. |
billing_frequency |
string | Required for recurring creation: monthly, Quarterly, or yearly (case-sensitive). Purchases use upfront automatically on creation; use upfront for later purchase billing edits. |
cost |
number or null | Optional for paid subscriptions. 0–999,999,999.99. |
billing_date |
string or null | Creation only, paid subscriptions. Optional YYYY-MM-DD. |
contract_term |
string or null | Creation only, recurring subscriptions. one_year, two_year, three_year, four_year, or five_year. Required with contract dates or automatic renewal. |
contract_start_date |
string or null | Creation only, recurring subscriptions. Optional YYYY-MM-DD. |
contract_end_date |
string or null | Creation only, recurring subscriptions. Required with a term, start date, or automatic renewal; on or after the start date. |
auto_renew |
boolean | Creation only, recurring subscriptions. Optional. |
custom_fields |
object | Optional unless the category has required fields. Key values by field ID. Use the category options to discover fields. Changing category requires its required fields. |
custom_field_times |
object | Optional. Key HH:mm times by date-field ID; also supply the matching custom_fields date. |
Fetch available values before choosing IDs. IDs and required fields vary by organization.
Example
Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization.
curl --request POST "https://my.assetcenter.app/api/v1/subscriptions" \
--header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"category_id":9,"name":"Team software","billing_type":"subscription","price_model":"per_license","license_count":10,"billing_frequency":"monthly","cost":12}'
Response
201 Created. Example response; IDs, values, and timestamps will differ in your organization.
{
"data": {
"id": 123,
"name": "Team software",
"vendor_name": null,
"plan_type": null,
"status": "available",
"category_id": 9,
"license_count": 10,
"billing_type": "subscription",
"billing_frequency": "monthly",
"cost": "12.00",
"created_at": "2026-09-07T16:00:00.000000Z",
"updated_at": "2026-09-07T16:00:00.000000Z"
}
}
Behavior and constraints
Required: category_id, name, and billing_type, plus required category fields and conditional billing fields below. Creation respects plan limits. Use only the fields listed here; assignments, status, IDs, timestamps, and file uploads are not writable through this endpoint. Each successful POST creates a new record. Inventory creation has no idempotency replay protection.
Errors
401 means the token is missing, expired, revoked, or not a customer API token. 403 means a required permission or administrator access is missing. 422 identifies invalid or unsupported input; inspect the errors object when present. 409 indicates a conflicting state or concurrent change; inspect the message and refresh the record before deciding how to proceed. 429 means a rate limit was reached. See error handling and rate limits.