> ## 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 for Government

> Let clients review and confirm the income, employment, and asset data Truv retrieves before it reaches a caseworker

Let clients review and confirm — or flag — the income, employment, and asset data Truv retrieves during verification. Self-certification adds a documented client attestation step to eligibility and recertification workflows: the client marks their data as representative or flags discrepancies, and you retrieve the result to see what they confirmed.

***

## When to use

| Scenario                                 | Why it helps                                                                                 |
| ---------------------------------------- | -------------------------------------------------------------------------------------------- |
| Program requires client attestation      | Captures the client's confirmation of their own data as part of the record                   |
| Multiple income sources or irregular pay | The client verifies each retrieved source is accurate and complete                           |
| Self-employed clients                    | The client confirms or annotates bank transaction data that would otherwise be self-reported |
| Community engagement / volunteer hours   | The certification screen can display hours for the client to confirm                         |

***

## How it works

After the client completes all verifications in the order, they continue to a certification screen showing the retrieved data. There they mark each employment or account **representative** or flag discrepancies, then submit to complete the flow. Your server retrieves the outcome from the order-read endpoint with the `certification` query parameter after the order completes.

See the [Self-Certification guide](/developers/integration/embedded-orders/self-certification) for the full implementation, and [Customer Portal → Self-certification](/government/integration/customer-portal#self-certification) for what's configurable on the certification screen.

<Note>
  Self-certification is a review-and-confirm step layered on top of a verification — it does not replace the underlying income, employment, or asset data Truv retrieves.
</Note>

***

## Sample results

`GET /v1/orders/{id}/?certification=all` returns the order with a `certification` object attached to each record the client reviewed. Each object carries the client's `decision` (`representative` or `not_representative`); rejected records include a `rejection_reason` and optional comment. Payroll employments appear under `employers[].employments[]`, and bank data appears under `financial_accounts[]`.

```json theme={null}
{
  "id": "39aa1486ccca4bc19cda071ffc1ba392",
  "employers": [
    {
      "company_name": "Acme",
      "employments": [
        {
          "id": "b3f1c0d94e2f4a7c8a1e2f3b4c5d6e7f",
          "job_title": "Caseworker",
          "income": "56100.00",
          "certification": {
            "decision": "representative",
            "rejection_reason": null,
            "rejection_comment": null,
            "certified_data": {
              "type": "employment",
              "is_active": true,
              "monthly_income": "4675.00",
              "hours_per_month": "173.00"
            }
          }
        },
        {
          "id": "c8a2d1e0f3b44c5d9e6f7a8b9c0d1e2f",
          "job_title": "Server",
          "income": "16120.00",
          "certification": {
            "decision": "not_representative",
            "rejection_reason": "incorrect_amount",
            "rejection_comment": "My pay was higher than what's shown.",
            "certified_data": {
              "type": "employment",
              "is_active": true,
              "monthly_income": "1800.00",
              "hours_per_month": "80.00"
            }
          }
        }
      ]
    }
  ]
}
```

Rejected records return one of these `rejection_reason` values: `employment_no_longer_active`, `incorrect_amount`, `duplicate_entry`, `outdated_information`, or `other`. Use `?certification=certified` to return only the records the client confirmed. For the full response shape — including bank accounts and self-employment income — see the [Self-Certification guide](/developers/integration/embedded-orders/self-certification).

***

## References

<CardGroup cols={2}>
  <Card title="Templates" icon="sliders" href="/api-reference/templates/object">
    Configure the certification screen and order flow per company
  </Card>

  <Card title="Transaction categories" icon="tags" href="/api-reference/transactions/object#transaction-categories">
    Category values applied to bank transactions
  </Card>
</CardGroup>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Self-Certification Guide" icon="clipboard-check" href="/developers/integration/embedded-orders/self-certification">
    Full implementation — enable the review step and interpret results
  </Card>

  <Card title="Retrieve an order" icon="code" href="/api-reference/orders/orders_read">
    Read certification results with the `certification` query parameter
  </Card>

  <Card title="Customer Portal" icon="desktop" href="/government/integration/customer-portal#self-certification">
    Where clients review and confirm their data
  </Card>

  <Card title="Self-Employed Income" icon="user" href="/government/products/self-employed-income">
    Let clients confirm and annotate bank transaction data
  </Card>
</CardGroup>
