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.