Add subscription renewal change request¶
Creates a subscription renewal change request for a customer account. The request is processed asynchronously and can be used, for example, for bulk updates of renewal settings.
Prerequisites¶
Credentials as described in Authentication
A customer account (organization) identifier the caller has access to
The change request type and the job data matching that type
C#¶
To add a subscription renewal change request, first create an instance of CrayonApiClient and get the token using CrayonApiClient instance.
Then call SubscriptionRenewalChangeRequests.AddAsync() method by passing the token and the change request.
var client = new CrayonApiClient("https://api.crayon.com/");
var token = client.Tokens.GetUserToken(clientId, clientSecret, userName, password).GetData().AccessToken;
var request = new SubscriptionRenewalChangeRequestDto<object>
{
CustomerAccountId = <organization identifier>,
ChangeRequestType = SubscriptionRenewalChangeRequestType.RenewalQuantityServiceBulkUpdate,
JobData = <job data matching the change request type>
};
var result = await client.SubscriptionRenewalChangeRequests.AddAsync(token, request);
Request¶
Request Syntax:
Method |
Request URI |
|---|---|
POST |
https://api.crayon.com/api/v1/subscriptionrenewalchangerequest/ |
Request Headers:
The following HTTP request headers are supported
Header |
Type |
Description |
|---|---|---|
Authorization |
string |
Required. The authorization token in the form Bearer <token>. |
Accept |
string |
Specifies the request and response type, “application/json”. |
Content-Type |
string |
Specifies the media type of the resource, “application/json”. |
Request Body:
Name |
Type |
Description |
|---|---|---|
CustomerAccountId |
int |
Required. Identifier of the organization the request is for. |
ChangeRequestType |
SubscriptionRenewalChangeRequestType |
Required. The type of change to perform. |
JobData |
object |
Required. The data for the job. The shape depends on the change request type. |
ChangedBy |
string |
Optional. Who requested the change. |
The remaining properties (Id, InstanceId, CreatedDate, ModifiedDate, EndedDate, Status) are passed through as provided. UserId is always replaced by the identifier of the calling user.
Change request types:
Name |
Value |
|---|---|
ExtendedServiceTermCancellation |
0 |
RenewalQuantityServiceBulkUpdate |
1 |
ResellerCustomerRenewalPolicyBulkUpdate |
2 |
ResellerCustomerTermBulkUpdate |
3 |
ResellerCustomerEndDateAlignmentBulkUpdate |
4 |
RenewalChangeConfiguration |
5 |
Request Example:
POST "https://api.crayon.com/api/v1/subscriptionrenewalchangerequest/"
Accept : application/json
Content-Type: application/json
Authorization : Bearer < Token >
Request Body Example:
{
"id": 0,
"instanceId": "363004f7-cb83-4245-a0b3-e84dc9bc6c2b",
"customerAccountId": 6631,
"userId": "ab69b121-b662-4388-abbc-1ddd7810605a",
"createdDate": "2026-10-09T12:21:40.282Z",
"modifiedDate": "2026-10-09T12:21:40.282Z",
"endedDate": "2026-10-09T12:21:40.282Z",
"status": 1,
"changeRequestType": 5,
"changedBy": "0|Crayon|Crayon||true|",
"jobData": {
"tenantScope": {
"selectAll": false,
"resellerCustomerIds": [
"535e2340-6c3e-48ff-b6bb-33ca4605b729"
]
},
"subscriptionType": "LicenseBased",
"sourceFilter": {
"renewalPolicy": "RenewToNewTerm",
"expirationDateRange": null
},
"targetPolicy": {
"policy": "CancelAtExpiration",
"termDuration": null,
"billingCycle": null
}
}
}
Response¶
If successful, this method returns the created subscription renewal change request in the response body.
Response success and error codes:
Code |
Description |
|---|---|
200 |
OK. The change request was created. |
401 |
Unauthorized. The token is missing or invalid. |
403 |
Forbidden. The caller has no access to the organization. |