# Withdraw Entitlement Cancellation Request

`POST https://api.suger.cloud/org/{orgId}/entitlement/{entitlementId}/cancel/withdraw`

Withdraw an entitlement cancellation request.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `orgId` | path | string | yes | Organization ID |
| `entitlementId` | path | string | yes | Entitlement ID |

## Request Body

Required.

Content-Type: `application/json` · Schema: `EntitlementCancellationRequestWithdraw`

**`EntitlementCancellationRequestWithdraw`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `cancellationReason` | string | no | CancellationReason is the reason for withdrawing the cancellation request. |

## Responses

### 200 — OK

Content-Type: `application/json` · Schema: `EntitlementCancellationRequest`

**`EntitlementCancellationRequest`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string | no | CreatedAt holds the value of the "created_at" field. |
| `createdBy` | LastModifiedBy | no |  |
| `entitlementID` | string | no | EntitlementID holds the value of the "entitlement_id" field. |
| `externalRequestID` | string | no | ExternalRequestID holds the value of the "external_request_id" field. |
| `id` | string | no | ID of the ent. |
| `info` | EntitlementCancellationRequestInfo | no |  |
| `lastUpdatedAt` | string | no | LastUpdatedAt holds the value of the "last_updated_at" field. |
| `organizationID` | string | no | OrganizationID holds the value of the "organization_id" field. |
| `partner` | string | no | Partner holds the value of the "partner" field. |
| `status` | string | no | Status holds the value of the "status" field. |
| `statusMessage` | string | no | StatusMessage holds the value of the "status_message" field. |

**`LastModifiedBy`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `email` | string | no | The email of the creator. |
| `entityId` | string | no | The ID of the creator. |
| `entityType` | EntityType | no |  |
| `name` | string | no | The name of the creator. |

**`EntitlementCancellationRequestInfo`** fields:

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `awsClientToken` | string | no | AwsClientToken is the UUID client token for idempotency. |
| `awsReasonCode` | string | no | AwsReasonCode is the cancellation reason code from AWS SDK. |
| `awsReasonDescription` | string | no | AwsReasonDescription is the description of the cancellation reason. |

### 400 — Bad request error

Content-Type: `application/json`

### 500 — Internal server error

Content-Type: `application/json`

## Example

_Generated from this operation's schema. Values are placeholders — substitute your own ids, and set `SUGER_TOKEN` to a bearer token from the [OAuth client-credentials exchange](https://doc.suger.io/get-started/oauth-app/)._

### Request

```bash
curl -X POST 'https://api.suger.cloud/org/{orgId}/entitlement/{entitlementId}/cancel/withdraw' \
  -H 'Authorization: Bearer $SUGER_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "cancellationReason": "string"
}'
```

### Response — 200

```json
{
  "createdAt": "2026-01-31T12:00:00Z",
  "createdBy": {
    "email": "buyer@example.com",
    "entityId": "01H0000000000000000000",
    "entityType": "",
    "name": "Acme Corp"
  },
  "entitlementID": "01H0000000000000000000",
  "externalRequestID": "01H0000000000000000000",
  "id": "01H0000000000000000000",
  "info": {
    "awsClientToken": "string",
    "awsReasonCode": "string",
    "awsReasonDescription": "string"
  },
  "lastUpdatedAt": "2026-01-31T12:00:00Z",
  "organizationID": "01H0000000000000000000",
  "partner": "string",
  "status": "string",
  "statusMessage": "string"
}
```

### Error — 400

```json
"string"
```

---

Interactive API reference: https://doc.suger.io/api/
