---
title: "Retrieve a direct deposit switch report for a link"
method: GET
path: "/v1/links/{link_id}/direct_deposit/report/"
tags: ["Deposit Switch Reports"]
---

# Retrieve a direct deposit switch report for a link

`GET /v1/links/{link_id}/direct_deposit/report/`

## Request

- Base URL: `https://prod.truv.com`
- URL: `https://prod.truv.com/v1/links/{link_id}/direct_deposit/report/`
- Auth: API key in header `X-Access-Client-Id` and API key in header `X-Access-Secret`

The endpoint returns the DDS report for a link

## Query parameters

- `show_fraud_reasons` boolean

## Response `200`

- DDSDetail: Data for the DDS report
  - `id` string, required: Unique ID
  - `status` string, required: [Request status](https://docs.truv.com/reference/task-livecycle)
  - `finished_at` string: Time when report was finished
  - `completed_at` string, required: Time when report was completed **(Deprecated, invalid datetime format)**
  - `access_token` string, required: Access token for a Link to payroll provider
  - `tracking_info` string, nullable, required: Any information passed to the Truv Bridge from a partner
  - `is_suspicious` boolean: Flag to indicate if the data from the source is suspicious. E.g. fraud detected in uploaded documents or SSN of the user does not match with the data
  - `fraud_reasons` FraudReason[]: Findings recorded for this link and its tasks. Included only when `show_fraud_reasons=true`. An empty array means no findings are available for this response.
    - `code` 'editing_software_detected' | 'screenshot' | 'design_software_detected' | 'document_from_online_generator' | 'office_software_detected' | 'scanned_document' | 'suspicious_producer' | 'blocked_text_content' | 'document_type_mismatch' | 'ai_generated_content' | 'invalid_content_credentials' | 'malware_detected' | 'modified_before_creation_date' | 'future_date' | 'modified_after_creation' | 'anomalous_pdf_structure' | 'invalid_date' | 'has_only_images' | 'insufficient_text' | 'content_tampering_suspected' | 'content_diff_between_versions' | 'ssn_mismatch_between_documents' | 'ssn_mismatch_with_applicant' | 'inconsistent_payroll_taxes', required: Machine-readable identifier for the type of finding.
    - `message` string, required: Human-readable explanation of the finding.
    - `severity` 'high' | 'medium' | 'low', required: Severity assigned to the finding. This value is not a confidence score. Use the task status to determine the current processing outcome. `high` - finding classified as fraud, `medium` - finding classified as suspicious, `low` - document-quality or validation finding, not a fraud finding.
    - `document_ids` string[], required: IDs of the documents associated with the finding. Empty when the finding does not refer to a specific document. These are Documents API IDs, which differ from Collections API `document_id` values.
    - `uploaded_file_ids` string[], required: IDs of the original files uploaded through a document collection. Empty when no associated collection upload is available. One uploaded file may contain multiple recognized documents.
    - `details` object, required: Additional information about the finding. Available fields depend on the reason code.
    - `task_id` string, nullable, required: ID of the task associated with the finding. `null` if the finding was recorded directly on the link without an associated task.
    - `created_at` string, date-time, required: Date and time the finding was recorded, in ISO 8601 format.
  - `deposit_details` object, required: Bank account info. Used for Direct deposit switching and Paycheck linked lending
    - `account_number` string, required: Account number
    - `account_type` 'checking' | 'savings', required: Account type: * `checking` - Checking account, * `savings` - Savings account
    - `routing_number` string, required: Routing number
    - `bank_name` string, required: Bank name
    - `deposit_type` 'entire' | 'percent' | 'amount': Deposit type: * `entire` - Entire paycheck, * `percent` - Percentage of the paycheck, * `amount` - Fixed amount from the paycheck
    - `deposit_value` string: Deposit value
  - `initial_accounts` object[], nullable: List of initial accounts
    - `account_number` string, required: Account number. Only digits and * are allowed.
    - `routing_number` string, required: Routing number. Only digits and * are allowed.
    - `account_type` 'checking' | 'savings': Account type. * `checking` - Checking account, * `savings` - Savings account
    - `account_name` string: Account name
    - `bank_name` string: Bank name.
    - `deposit_type` 'entire' | 'percent' | 'amount': Deposit type. * `entire` - Entire paycheck, * `percent` - Percentage of the paycheck, * `amount` - Fixed amount from the paycheck
    - `deposit_value` string: Deposit value.
  - `pdf_report` string, uri: URL that points to the PDF file containing the report
  - `employer` object, nullable: Employer
    - `id` string, required: Employer ID.
    - `name` string, required: Employer name.
    - `logo_url` string, nullable: Employer logo image.
  - `provider` object, required: Payroll provider
    - `id` string, required: Data provider ID.
    - `name` string, required: Data provider name.
    - `logo_url` string: Data provider logo image.

## Other responses

- `401`: HTTP 401 Unauthorized
- `403`: HTTP 403 Forbidden

## Changes

- **2026-10-30** `64de38c55f45`: 2 info
  - added the new optional `query` request parameter `show_fraud_reasons`
  - added the optional property `fraud_reasons` to the response with the `200` status

[Operation history](https://skmtc.dev/truv/apis/truv-api/changes/v1/links/:link_id/direct_deposit/report/get.md)

---

[API](https://skmtc.dev/truv/apis/truv-api.md) - [All operations](https://skmtc.dev/truv/apis/truv-api/llms.txt) - [OpenAPI document](https://skmtc.dev/truv/apis/truv-api/revisions/e20fd88e9371?raw)
