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

# Self-Certification

> Retrieve user self-certification results for employments and accounts in an order

Self-certification allows users to review and confirm (or reject) the employment and account data retrieved during verification. Retrieve the certification results to see whether the user confirmed the data as representative or flagged discrepancies.

```mermaid theme={null}
sequenceDiagram
    participant User
    participant Hosted as Hosted Page
    participant Server as Your Server
    participant API as Truv API

    Hosted->>User: Verification data retrieved
    User->>Hosted: Reviews and certifies data
    API-->>Server: Webhook (order-status-updated)
    Server->>API: GET /v1/orders/{id}/certifications/
    API-->>Server: Certification results (representative / not_representative)
```

***

## When to use

| Scenario                | Example                                                      |
| ----------------------- | ------------------------------------------------------------ |
| Income verification     | User confirms retrieved income matches their actual earnings |
| Employment confirmation | User validates employer name, start date, and pay rate       |
| Asset verification      | User reviews account balances and ownership details          |
| Dispute handling        | User flags incorrect or outdated data with a reason          |

***

## Retrieve certification results \[Server-side]

Send a `GET` request to the order's `/certifications/` endpoint after the user completes their review.

```bash theme={null}
curl --request GET \
     --url https://prod.truv.com/v1/orders/39aa1486ccca4bc19cda071ffc1ba392/certifications/ \
     --header 'X-Access-Client-Id: YOUR_TRUV_CLIENT_ID' \
     --header 'X-Access-Secret: YOUR_TRUV_CLIENT_SECRET' \
     --header 'Accept: application/json'
```

### Response structure

Each result contains a `decision` and either an `employment` or `account` object.

```json theme={null}
{
  "results": [
    {
      "decision": "representative",
      "employment": {
        "id": "24d7e80942ce4ad58a93f70ce4115f5c",
        "start_date": "2018-01-01",
        "pay_rate": "25.50",
        "pay_date": "2023-12-15",
        "company": {
          "name": "Facebook"
        }
      }
    },
    {
      "decision": "not_representative",
      "rejection_reason": "incorrect_amount",
      "rejection_comment": "Balance is outdated",
      "account": {
        "id": "bc917458a3da4b2c8cc8282aa1707aaa",
        "type": "CHECKING",
        "mask": "1234",
        "routing_number": "021000021",
        "balance": "1500.25",
        "owners": [
          { "full_name": "John Doe" }
        ]
      }
    }
  ]
}
```

***

## Decision values

| Decision             | Meaning                             |
| -------------------- | ----------------------------------- |
| `representative`     | User confirmed the data is accurate |
| `not_representative` | User flagged the data as inaccurate |

### Rejection reasons

When the decision is `not_representative`, the result includes a `rejection_reason`:

| Reason                        | Description                                               |
| ----------------------------- | --------------------------------------------------------- |
| `employment_no_longer_active` | User is no longer employed at this company                |
| `incorrect_amount`            | Income or balance amount is wrong                         |
| `duplicate_entry`             | Employer or account appears more than once                |
| `outdated_information`        | Data is stale or no longer current                        |
| `other`                       | User provided a custom explanation in `rejection_comment` |

***

## Next steps

<CardGroup cols={2}>
  <Card title="New User" icon="user-plus" href="/developers/integration/hosted-orders/new-user">
    Create a hosted order from scratch
  </Card>

  <Card title="Data Refresh" icon="arrows-rotate" href="/developers/integration/hosted-orders/data-refresh">
    Refresh data when certifications flag outdated info
  </Card>
</CardGroup>
