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

# Hand over a ticket

> POST /v1/tickets/{id}/handover — give a ticket your chatbot is handling to a human agent

Gives a ticket to your team. It moves to an email channel, lands in **Needs response**, and the waiting time starts counting. An agent replies by email, so the customer needs an email address.

```http theme={null}
POST /v1/tickets/{id}/handover
```

## Authentication

A **Read & write** live key. See [Authentication](https://docs.replyful.com/api-reference/authentication.md).

## Path parameters

**id** `string` *required*

Ticket ID prefixed with `ti_`.

## Body

Both fields are optional; the body can be empty.

**reason** `string`

`customer_request` (the customer asked for a person) or `ai_unable` (your bot could not help). Defaults to `ai_unable`.

**email** `object`

The customer's email, when the contact has none yet. Ignored if the contact already has one, and for a contact you identified with `externalId`: send that user's verified email when you create the ticket.

**properties**

**email** `string` *required*

The email address.

**verified** `boolean`

`true` when you have checked that the person owns the address. Defaults to `false`.

## Response

`200` with the [`Ticket` object](https://docs.replyful.com/api-reference/tickets/list#the-ticket-object), now with `handledBy: "human"`. Calling it again on a handed-over ticket changes nothing and returns the ticket.

## Which email channel

The ticket moves to the email channel named in the chat channel's handover settings. If none is named and you have exactly one email channel, that one is used.

## Example

```bash curl theme={null}
curl https://api.replyful.com/v1/tickets/ti_8kNwq2Tt7yGkX9wM4bDfP/handover \
  -H "Authorization: Bearer rfl_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "customer_request",
    "email": { "email": "ada@example.com", "verified": false }
  }'
```

## Errors

| Status | Code | Meaning |
| - | - | - |
| `404` | `ticket_not_found` | The ticket does not exist or belongs to another organization. |
| `422` | `email_required` | The contact has no email and none was sent. |
| `422` | `no_email_channel` | Your organization has no email channel to reply from. |
| `422` | `handover_email_channel_not_set` | You have several email channels and the chat channel's handover settings name none. |
| `422` | `ticket_not_on_chat_channel` | The ticket did not start on a chat channel. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.