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

# POST /v1/staff/characters/reject — Reject Characters

> Reject one or more pending_approval characters, resetting their idStatus to draft. Requires MODERATOR_CHIEF, ADMINISTRATOR, or DEVELOPER permission.

Use this endpoint to reject one or more characters that are in the `pending_approval` review queue. Rejecting a character sets its `idStatus` back to `draft`, allowing the applicant to revise and resubmit it. You can reject multiple characters in a single request by passing an array of `characterId` values.

<Note>
  Rejected characters are not deleted — their status is simply set back to `draft`. The applicant can update their character and submit it for review again.
</Note>

<Warning>
  This endpoint requires the `MODERATOR_CHIEF`, `ADMINISTRATOR`, or `DEVELOPER` permission. Regular user accounts cannot reject characters.
</Warning>

## Endpoint

```text theme={null}
POST https://api.cacolombia.com/v1/staff/characters/reject
```

## Request Body

<ParamField body="characterIds" type="string[]" required>
  An array of character Snowflake IDs to reject. All characters in the array are processed in a single batch operation and have their `idStatus` set back to `draft`.
</ParamField>

## Response

A successful `200` response returns the updated character objects after rejection:

<ResponseField name="characters" type="array">
  An array of character objects reflecting their updated `draft` status. The array includes one entry for each character that was processed. Each object contains the full character data as returned by `getApiCharacterData()`.
</ResponseField>

## Example Request

```bash theme={null}
curl -X POST "https://api.cacolombia.com/v1/staff/characters/reject" \
  -H "Authorization: Bearer <your_token>" \
  -H "Content-Type: application/json" \
  -d '{"characterIds": ["998877665544332211", "111222333444555666"]}'
```

## Example Response

```json theme={null}
{
  "characters": [
    {
      "characterId": "998877665544332211",
      "userId": "112233445566778899",
      "firstNames": "Carlos",
      "lastNames": "Rodríguez",
      "age": 30,
      "height": 178,
      "gender": "Masculino",
      "bloodType": "O+",
      "nationality": {
        "nombre": "Colombiano",
        "abrev": "COL",
        "lugar": "Colombia"
      },
      "dob": "01/03/1994",
      "avatarHash": "abc123def456",
      "idCardHash": null,
      "fullBodyHash": "def456ghi789",
      "avatar3dHash": null,
      "avatar3dCamera": null,
      "avatar3dAABB": null,
      "idStatus": "draft",
      "wallet": null,
      "createdAt": "2024-06-07T14:00:00.000Z",
      "updatedAt": "2024-06-08T10:15:00.000Z"
    }
  ]
}
```

## Error Responses

| Status | Description                                                                                                                        |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `400`  | The request body is missing `characterIds`, the field is not an array, or the array contains non-string values.                    |
| `401`  | You are not authenticated. Provide a valid authorization token with your request.                                                  |
| `403`  | Your account does not hold any of the required staff permissions.                                                                  |
| `500`  | The batch rejection could not be completed. This is an internal server error — try again or contact support if the issue persists. |

<Tip>
  Rate limiting applies to this endpoint. You can call it at most 10 times per minute. Batch your `characterIds` to reject multiple characters in a single request rather than making separate calls.
</Tip>
