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

# Government Benefits

> Use payroll, banking, and applicant-certified data in government benefits workflows.

Government benefits programs can use payroll records, banking reports, or a standardized government payroll report. Reuse the same Argyle user when an applicant completes more than one path.

## Choose the program inputs

<CardGroup cols={3}>
  <Card title="Payroll Data APIs" icon="database" href="/data-apis/overview">
    Retrieve identities, paystubs, and payroll documents for program-specific rules.
  </Card>

  <Card title="Banking" icon="building-columns" href="/verifications/verification-types/banking">
    Order income, asset, or transaction reports from financial accounts applicants connect.
  </Card>

  <Card title="Government Report" icon="landmark" href="#government-report">
    Generate a payroll income report with optional applicant self-certification.
  </Card>
</CardGroup>

## Shared workflow

1. Create or reuse an Argyle [user](/overview/data-structure/users) for the applicant and retain the ID with the case record.
2. Start the appropriate payroll or banking connection, or order the government report.
3. Let the applicant connect every account needed for the program determination.
4. Track Data API readiness with account and resource webhooks. Track report-based requests with the [`verifications.updated`](/api-reference/verifications-webhooks/updated) webhook.
5. Retrieve the records or completed reports required by your eligibility system.

## Payroll data

For program-specific calculations, retrieve the underlying records directly:

* [Identities](/api-reference/identities) for employer and employment information.
* [Paystubs](/api-reference/paystubs) for earnings, deductions, taxes, and pay-period data.
* [Payroll Documents](/api-reference/payroll-documents) for source documents available from connected accounts.

Use the [`paystubs.partially_synced`](/api-reference/paystubs-webhooks/partially-synced) webhook when the program needs a defined history window. Use the [`users.fully_synced`](/api-reference/users-webhooks/fully-synced) webhook only when the workflow must wait for all initial data from every newly connected payroll account.

## Banking

Banking uses the same user but a separate verification and session. Choose the banking report type required by the program, listen for verification status changes, and retrieve the completed PDF or JSON from the verification resource.

<a id="government-report" />

## Government report

Set `report.type` to `voie-government` when [ordering the verification](/api-reference/verifications/order-a-verification).

Applicant self-certification is enabled by default in the standard workflow. Set `report.self_certification` to `false` when applicant review and confirmation are not required.

```json theme={}
{
  "user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
  "report": {
    "type": "voie-government",
    "self_certification": true
  }
}
```

<Frame>
  <img src="https://mintcdn.com/argyle/nqG2n0cnn6j5JMl3/images/argyle-guides/api-ref/reports2/3-government-overview.png?fit=max&auto=format&n=nqG2n0cnn6j5JMl3&q=85&s=2cbacc7699b77539a08c70257d5c55de" alt="Applicant self-certification flow for a government payroll report." width="2920" height="2158" data-path="images/argyle-guides/api-ref/reports2/3-government-overview.png" />
</Frame>

When self-certification is enabled, the verification can enter `awaiting_certification` after the applicant connects the required accounts. The applicant reviews the available income information in Link before submitting it.

## Exceptions and returning applicants

* Track each payroll account separately so one incomplete connection does not hide records available from another.
* Monitor the [`accounts.updated`](/api-reference/accounts-webhooks/updated) webhook for connections that require applicant action.
* Return the existing user to [Reconnect an Account](/workflows/reconnecting-accounts) rather than creating another case identity.
* Add [Document Uploads](/workflows/document-processing) when the program accepts documents as an alternate source.

See [Data Delivery and Readiness](/overview/data-delivery) for direct payroll data, [Verification Statuses](/verifications/verification-statuses) for report-based requests, and the [Government VOIE example](/verifications/reports-and-source-documents#government-voie) for the report structure.
