Starts a recurring add-on for the organization (kit or laptop rental billed monthly, live bank every six months), optionally tied to case, with periods anchored on the day of startedAt (now by default). Repeating the same organization, SKU and externalRef returns the existing record instead of starting a second one; returns 400 for a SKU that is not a recurring add-on or an organization without a case-billing profile. Super admin only.
Body
Required
-
Must be a recurring add-on (kit rental, laptop rental, live bank). One-time charges go through the billing-item endpoint.
Values are
collection.phone,collection.social,collection.email,collection.ai-chat,collection.financial,collection.discord,collection.reddit,collection.linkedin,collection.legal,collection.file,collection.other,case.flat,case.pro-upgrade,addon.kit-rental,addon.laptop-rental,addon.laptop-rental-setup,addon.managed-service,addon.shipping,addon.live-bank,plan.base,source.per,ai.tokens-overage,adjustment.manual, oradjustment.discount. -
Caller-supplied dedup token. Repeating it for the same org+SKU returns the existing subscription instead of starting a second one. Reactivating after a cancel needs a NEW value.
-
Required audit reason — persisted on the BillingEvent
-
Case this add-on belongs to. Rentals are case-level; live banks may be org-level (omit).
-
When the subscription starts, ISO-8601. Defaults to now. Also the period anchor — every later period falls on this day-of-month, not the 1st.
curl \
--request POST 'http://api.example.com/admin/orgs/{orgId}/recurring-addons' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"skuKey": "collection.phone",
"externalRef": "string",
"reason": "string",
"case": "string",
"startedAt": "2026-05-04T09:42:00Z"
}'
{
"skuKey": "collection.phone",
"externalRef": "string",
"reason": "string",
"case": "string",
"startedAt": "2026-05-04T09:42:00Z"
}
{
"data": {
"id": "65a1b2c3d4e5f6a7b8c9d0f1",
"organization": "65a1b2c3d4e5f6a7b8c9d0e3",
"case": "string",
"skuKey": "addon.laptop-rental",
"recurrence": "monthly",
"startedAt": "2026-01-15T10:15:00.000Z",
"canceledAt": "2026-05-04T09:42:00Z",
"status": "active",
"externalRef": "rental-2026-001"
},
"statusCode": 201,
"timestamp": "2026-01-15T10:15:00.000Z"
}