| Time | Status | User Agent |  |
| :-- | :-- | :-- | :-- |
| Make a request to see history. |

#### URL Expired

The URL for this request expired after 30 days.

This method moves an applicant to an appropriate stage if specified or to the next stage by default. If `stage_id` is provided to indicate a specific stage, then it is required to send `funnel_id` as well.

All automated actions associated with the target stage are invoked by default.

You can skip the automated actions using the `skip_automated_actions` parameter set to `true`.

| Parameter                    | Type    | Description  |
|------------------------------|---------|--------------|
| id                           | string  | The applicant's external ID | 
| stage_id                     | string  | Destination stage's external id. If not provided, the applicant will advance to the next stage by default. |
| funnel_id                    | string  | Destination funnel's external id. Required when advancing to a workflow-based stage using `stage_id`. |
| skip_automated_actions       | boolean | Set `true` if you want to skip automated actions when advancing the applicant. Defaults to `false`. |
| rejection_reason_id          | string  | The external ID or ID of a rejection reason to apply when advancing the applicant. |
| archived_reason_id           | string  | The external ID or ID of an archived reason to apply when advancing the applicant. |
| validate_data                | boolean | Set `true` to validate the applicant's existing data against the target stage's ValidationGroup before advancing. Returns 422 with field-level errors when invalid. Defaults to `false`. |

### Response Codes

#### 204 No Content

#### 401 Unauthorized

#### 422 Unprocessable Entity

- Returns `{ message }` for transition failures (e.g. applicant is already on the target stage). 
- When `validate_data: true` is sent and the applicant's stored data does not satisfy the target stage's ValidationGroup, returns `{ errors: { field_key: [messages] } }` with field-level errors instead.

### Example Request

```bash
curl --request PUT \
     --url https://api.fountain.com/v2/applicants/id/advance \
     --header 'accept: application/json' \
     --header 'content-type: application/json'
```

### Example Response

```json
{
  "errors": {
    "field_key": ["messages"]
  }
}
```
