# Update a subscription order cancellation

Updates a subscription order cancellation with a specified ID.
Use this operation to update a cancellation reason and description.

Endpoint: PATCH /subscription-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters:

  - `id` (string, required)
    ID of the resource.

## Request fields (application/json):

  - `subscriptionId` (string, required)
    ID of the canceled subscription order.
    Example: "sub_01HRF27SATGE4Z6PBJE6PD8328"

  - `reason` (string)
    Reason for the cancellation.
    Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"

  - `description` (string)
    Description of the cancellation reason in free form.

  - `prorated` (boolean)
    Specifies if the customer gets a pro-rata credit for the time remaining between churnTime and subscription next renewal time.

  - `churnTime` (string)
    Date and time when the subscription is deactivated.
If this field and churnTimePolicy are omitted, this value defaults to the current time.

  - `churnTimePolicy` (string,null)
    Specifies when the subscription is to be deactivated.
The churnTimePolicy takes precedence over the churnTime in request.
    Enum: "null", "now", "at-next-renewal"

  - `lineItems` (array)
    Items to be added to the new invoice.
Proration item is generated and added automatically.

  - `lineItems.type` (string, required)
    Type of invoice line item.
    Enum: "debit", "credit"

  - `lineItems.description` (string)
    Description of the line item.

  - `lineItems.unitPriceAmount` (number, required)
    Unit price of the line item.
    Example: 49.95

  - `lineItems.unitPriceCurrency` (string, required)
    Currency code in ISO 4217 format.

  - `lineItems.quantity` (integer, required)
    Quantity of the line item.
    Example: 1

  - `lineItems.periodStartTime` (string)
    Date and time when the period begins for this item.

  - `lineItems.periodEndTime` (string)
    Date and time when the period ends for this item.

## Response 200 fields (application/json):

  - `id` (string)
    ID of the cancellation.
    Example: "sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV"

  - `subscriptionId` (string, required)
    ID of the canceled subscription order.
    Example: "sub_01HRF27SATGE4Z6PBJE6PD8328"

  - `proratedInvoiceId` (string,null)
    ID of the invoice on which the cancellation proration is calculated.
    Example: "in_0YVF9605RKC62BP14NE2R7V2XT"

  - `appliedInvoiceId` (string,null)
    ID of the invoice on which the cancellation fees or credits are applied.
    Example: "in_0YVF9605RKC62BP14NE2R7V2XT"

  - `canceledBy` (string)
    Specifies who initiated the cancellation.
    Enum: "merchant", "customer", "rebilly"

  - `reason` (string)
    Reason for the cancellation.
    Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"

  - `description` (string)
    Description of the cancellation reason in free form.

  - `prorated` (boolean)
    Specifies if the customer gets a pro-rata credit for the time remaining between churnTime and subscription next renewal time.

  - `status` (string)
    Status of the subscription order.
    Enum: "draft", "confirmed", "completed", "revoked"

  - `canceledTime` (string,null)
    Date and time when a subscription is cancelled.
By default, this occurs when status is confirmed, unless draft is specified.

  - `createdTime` (string)
    Date and time when the resource is created.
This value is set automatically when the resource is created.

  - `updatedTime` (string)
    Date and time when the resource is updated.
This value is set automatically when the resource is updated.

  - `churnTime` (string)
    Date and time when the subscription is deactivated.
If this field and churnTimePolicy are omitted, this value defaults to the current time.

  - `churnTimePolicy` (string,null)
    Specifies when the subscription is to be deactivated.
The churnTimePolicy takes precedence over the churnTime in request.
    Enum: "null", "now", "at-next-renewal"

  - `lineItems` (array)
    Items to be added to the new invoice.
Proration item is generated and added automatically.

  - `lineItems.type` (string, required)
    Type of invoice line item.
    Enum: "debit", "credit"

  - `lineItems.description` (string)
    Description of the line item.

  - `lineItems.unitPriceAmount` (number, required)
    Unit price of the line item.
    Example: 49.95

  - `lineItems.unitPriceCurrency` (string, required)
    Currency code in ISO 4217 format.

  - `lineItems.quantity` (integer, required)
    Quantity of the line item.
    Example: 1

  - `lineItems.periodStartTime` (string)
    Date and time when the period begins for this item.

  - `lineItems.periodEndTime` (string)
    Date and time when the period ends for this item.

  - `lineItems.createdTime` (string)
    Date and time when the resource is created.
This value is set automatically when the resource is created.

  - `lineItems.updatedTime` (string)
    Date and time when the resource is updated.
This value is set automatically when the resource is updated.

  - `lineItemSubtotal` (object)
    Subtotal of the line items added after the subscription cancellation.

  - `lineItemSubtotal.amount` (number)
    Subtotal amount of the line items.
    Example: 49.95

  - `lineItemSubtotal.currency` (string)
    Currency code in ISO 4217 format.

  - `_links` (array)
    Related links.

  - `_links.href` (string)
    Link URL.

  - `_links.rel` (string)
    Type of link.
    Enum: "self"

## Response 401 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 403 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 422 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

  - `invalidFields` (array)
    Invalid field details.

  - `invalidFields.field` (string)
    Name of the field.
Dot notation is used for nested object field names.

  - `invalidFields.message` (string)
    Message field.

## Response 429 fields (application/json):

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".
    Example: "about:blank"

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
    Example: "Rate Limit Exceeded"

  - `status` (integer)
    HTTP status code.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.
    Example: "A request cannot be executed because the user has sent too many requests within a certain period of time"

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.


