# Candidate Psychometric API — States

The `code` field in the status object is a string identifier. The `descriptionCode` field optionally qualifies the status.

## States

| State (`code`) | Description | Terminal |
|  --- | --- | --- |
| `Contacting` | The system is reaching out to the candidate to initiate the psychometric test | No |
| `Contacted` | The candidate has been successfully contacted | No |
| `Accepted` | The candidate accepted the invitation to take the test | No |
| `InTest` | The candidate has started and is currently taking the psychometric test | No |
| `Approved` | The test was finished successfully and results were received from the provider | No |
| `PendingValidation` | The results are awaiting recruiter review before the candidate advances (only when `validationSection` is enabled) | No |
| `Stalled` | A holding state; the auto-advance option is disabled or an error occurred while moving the candidate to the next stage | No |
| `Error` | An error occurred while processing the test | No |
| `CommunicationProviderError` | A transient error occurred with the communication provider | No |
| `Forwarded` | The same feature instance was re-dispatched to repeat the process | Yes |
| `ClosedManually` | The recruiter manually removed the candidate from this feature | Yes |
| `ClosedAutomatically` | The feature was closed automatically by the system | Yes |
| `Cancelled` | The process was cancelled | Yes |
| `DiscardedByRecruiter` | Manually discarded by a recruiter | Yes |
| `DiscardedDueToInactivity` | Discarded because the candidate was inactive for too long | Yes |
| `DiscardedDueToLackOfInterest` | Discarded because the candidate showed no interest | Yes |
| `DiscardedDueToCandidateOptedOut` | Discarded because the candidate opted out of communications | Yes |
| `DiscardedDueToCandidateWithdrawal` | Discarded because the candidate withdrew from the process | Yes |
| `DiscardedDueToCommunicationProviderError` | Discarded after a communication provider error could not be recovered | Yes |


> `Approved` is the state reached once the test is finished and provider results are stored. `PendingValidation` is only entered when the feature is configured with `validationSection` enabled, requiring recruiter review before advancing.


## Description Codes

| Code | Name | Description |
|  --- | --- | --- |
| `CPV20001` | `DiscardedDueToCommunicationProviderError` | Communication provider error led to discard |
| `CPV20002` | `DiscardedDueToLackOfInterest` | Candidate showed no interest |
| `CPV20003` | `DiscardedDueToCandidateOptedOut` | Candidate opted out of communications |
| `CPV20004` | `DiscardedByRecruiter` | Manually discarded by a recruiter |
| `CPV20005` | `DiscardedDueToInactivity` | Candidate was inactive for too long |
| `CPV20006` | `AlternativeContactSent` | An alternative contact method was used (informational, non-terminal) |
| `CPV20007` | `DiscardedDueToCandidateWithdrawal` | Candidate withdrew from the process |
| `CPV20008` | `Error` | An error occurred while processing the test |