# Upsert a subscription order cancellation Creates or updates (upserts) a subscription order cancellation with a specified ID. Endpoint: PUT /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" - `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 and subscription next renewal time. - `status` (string) Status of the subscription order. Enum: "draft", "confirmed", "completed", "revoked" - `churnTime` (string) Date and time when the subscription is deactivated. If this field and are omitted, this value defaults to the current time. - `churnTimePolicy` (string,null) Specifies when the subscription is to be deactivated. The takes precedence over the 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 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 is , unless is specified. - `createdTime` (string) Date and time which is set automatically when the resource is created. - `updatedTime` (string) Date and time which updates automatically when the resource is updated. - `churnTime` (string) Date and time when the subscription is deactivated. If this field and are omitted, this value defaults to the current time. - `churnTimePolicy` (string,null) Specifies when the subscription is to be deactivated. The takes precedence over the 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. - `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 201 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 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 is , unless is specified. - `createdTime` (string) Date and time which is set automatically when the resource is created. - `updatedTime` (string) Date and time which updates automatically when the resource is updated. - `churnTime` (string) Date and time when the subscription is deactivated. If this field and are omitted, this value defaults to the current time. - `churnTimePolicy` (string,null) Specifies when the subscription is to be deactivated. The takes precedence over the 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. - `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. Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}] - `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.