# Where the purchase renewing this commitment stands

> The latest purchase run of this commitment's renewal, with the steps, logs and trigger of the recommendation that renews it. not_started until somebody releases the renewal. queued once released and waiting for the term to end, or once the provider queued the purchase. in_progress while a run holds it. active once the provider reports the new commitment active, or once the renewal was completed by hand. payment_failed when the provider could not charge for it. failed when a run was refused before sending or the provider refused the purchase. indeterminate when nobody knows yet whether the purchase went through: it is reconciled, never retried. A commitment the organization does not hold is a 404.

Source: https://docs.levelfour.ai/api-reference/commitments/get-commitments-execution-by-id


## GET /api/v1/commitments/execution/{commitment_id}

The latest purchase run of this commitment's renewal, with the steps, logs and trigger of the recommendation that renews it. not_started until somebody releases the renewal. queued once released and waiting for the term to end, or once the provider queued the purchase. in_progress while a run holds it. active once the provider reports the new commitment active, or once the renewal was completed by hand. payment_failed when the provider could not charge for it. failed when a run was refused before sending or the provider refused the purchase. indeterminate when nobody knows yet whether the purchase went through: it is reconciled, never retried. A commitment the organization does not hold is a 404.

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `commitment_id` (path, string, required)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `commitment_id` (string, required)
  - `status` (one of `not_started`, `in_progress`, `active`, `queued`, `payment_failed`, `failed`, `indeterminate`, required)
  - `trigger_info` (object, nullable)
  - `execution_steps` (array of object)
    - `step_id` (string, required)
    - `label` (string, required)
    - `status` (one of `done`, `pending`, `warning`, `in_progress`, `failed`, required)
    - `duration_seconds` (integer, nullable)
    - `parent_step_id` (string, nullable)
  - `execution_logs` (array of object)
    - `step_id` (string, required)
    - `label` (string, required)
    - `status` (one of `done`, `pending`, `warning`, `in_progress`, `failed`, required)
    - `commands` (array of object)
      - `order` (integer, required)
      - `command` (string, required)
      - `output` (string, nullable)

#### Errors

- `400`: Bad Request
- `401`: Authentication Error
- `403`: Authorization Error
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

Body of `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`:

- `success` (`false`, required)
- `error` (object, required)
  - `code` (string, required)
  - `message` (string, required)
  - `details` (any)
- `timestamp` (date-time string, required)
