> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.ollang.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancel Human Review for an Order

> Cancel an active human review request for an order. The human review credits are refunded and the order is reverted back to its AI-only (Level 0) state.

Cancel an active human review request for an order. This endpoint reverts a Level 1 (Human Review) order back to Level 0 (AI-only), refunds the human review portion of the credits to the client, and disconnects the assigned translator. Only orders that are currently in progress with human review (Level 1, status `ongoing`) can be cancelled.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api-integration.ollang.com/integration/orders/60b8d6f1e1b9b1d8c6c0d8e1/cancel-human-review" \
    -H "X-Api-Key: <your-api-key>"
  ```

  ```javascript JavaScript theme={null}
  const orderId = "60b8d6f1e1b9b1d8c6c0d8e1";

  const response = await fetch(
    `https://api-integration.ollang.com/integration/orders/${orderId}/cancel-human-review`,
    {
      method: "POST",
      headers: {
        "X-Api-Key": "<your-api-key>",
      },
    },
  );

  const result = await response.json();
  console.log(result);
  ```

  ```python Python theme={null}
  import requests

  order_id = "60b8d6f1e1b9b1d8c6c0d8e1"
  headers = {
      'X-Api-Key': '<your-api-key>'
  }

  response = requests.post(
      f'https://api-integration.ollang.com/integration/orders/{order_id}/cancel-human-review',
      headers=headers
  )

  print(response.json())
  ```

  ```php PHP theme={null}
  $orderId = '60b8d6f1e1b9b1d8c6c0d8e1';

  $curl = curl_init();

  curl_setopt_array($curl, array(
      CURLOPT_URL => 'https://api-integration.ollang.com/integration/orders/' . $orderId . '/cancel-human-review',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => array(
          'X-Api-Key: <your-api-key>'
      ),
  ));

  $response = curl_exec($curl);
  $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  curl_close($curl);

  $result = json_decode($response, true);
  print_r($result);
  ```

  ```go Go theme={null}
  package main

  import (
      "fmt"
      "io"
      "net/http"
  )

  func main() {
      orderId := "60b8d6f1e1b9b1d8c6c0d8e1"
      url := fmt.Sprintf("https://api-integration.ollang.com/integration/orders/%s/cancel-human-review", orderId)

      req, _ := http.NewRequest("POST", url, nil)
      req.Header.Set("X-Api-Key", "<your-api-key>")

      client := &http.Client{}
      resp, _ := client.Do(req)
      defer resp.Body.Close()

      body, _ := io.ReadAll(resp.Body)
      fmt.Println(string(body))
  }
  ```

  ```java Java theme={null}
  String orderId = "60b8d6f1e1b9b1d8c6c0d8e1";

  HttpResponse<String> response = Unirest.post("https://api-integration.ollang.com/integration/orders/" + orderId + "/cancel-human-review")
    .header("X-Api-Key", "<your-api-key>")
    .asString();

  System.out.println(response.getBody());
  ```
</RequestExample>

## Authorizations

This endpoint requires API key authentication. Include your API key in the request header:

* **Header name**: `X-Api-Key`
* **Header value**: Your API key from the Ollang dashboard
* **Format**: `X-Api-Key: your-api-key-here`

You can obtain your API key from your [Ollang dashboard](https://lab.ollang.com).

## Path Parameters

<ParamField path="orderId" type="string" required>
  The unique identifier of the order for which you want to cancel the human
  review. The order must be Level 1 (Human Review) and currently in `ongoing`
  status.
</ParamField>

## Response

<ResponseField name="success" type="boolean" required>
  Indicates whether the human review cancellation was processed successfully.
</ResponseField>

<ResponseField name="message" type="string">
  A message describing the result of the request.
</ResponseField>

<ResponseField name="orderId" type="string">
  The unique identifier of the order whose human review was cancelled.
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "message": "Human Review has been cancelled and credits have been refunded.",
    "orderId": "60b8d6f1e1b9b1d8c6c0d8e1"
  }
  ```

  ```json 400 theme={null}
  {
    "statusCode": 400,
    "message": "Only Level 1 (Human Review) orders can be cancelled"
  }
  ```

  ```json 400 theme={null}
  {
    "statusCode": 400,
    "message": "Human Review can only be cancelled while the order is still in progress"
  }
  ```

  ```json 404 theme={null}
  {
    "statusCode": 404,
    "message": "Order not found"
  }
  ```

  ```json 401 theme={null}
  {
    "error": "Unauthorized",
    "message": "Invalid or missing API key",
    "code": "UNAUTHORIZED"
  }
  ```
</ResponseExample>

## How It Works

When you cancel a human review request:

1. **Credit Refund** — The human review portion of the cost (Level 1 price minus Level 0 price) is refunded to your USD credit balance.
2. **Order Revert** — The order level is changed from 1 (Human Review) back to 0 (AI-only) and the status is set to `completed`.
3. **Translator Disconnect** — Any assigned translator is removed from the order.

<Note>
  You can only cancel a human review while the order is still **in progress**
  (`ongoing` status). Once the translator has completed their review and the
  order status changes to `completed`, cancellation is no longer possible.
</Note>
