---
title: "Get Intake Request Details by Client"
method: GET
path: "/internal/api/clients/{client_id}/intake-requests/details"
tags: ["CLIENT", "Intake Requests"]
---

# Get Intake Request Details by Client

`GET /internal/api/clients/{client_id}/intake-requests/details`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/clients/{client_id}/intake-requests/details`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

Get the latest intake request details for a client for the given tax year. Returns full request details including tax_year. Returns 404 if no intake request exists.

## Path parameters

- `client_id` string, uuid, required: Client ID

## Query parameters

- `tax_year` string, required: Tax year for the intake request (e.g. 2024).

## Response `200`

Successful Response

- DocumentUploadRequestResponse: Schema for document upload request response
  - `id` string, uuid, required: Unique identifier for the upload request
  - `tenant_id` string, uuid, required: Tenant ID
  - `client_id` string, uuid, required: Client ID
  - `request_title` string, required: Title of the upload request
  - `instructions` string, nullable: General instructions for the client
  - `tax_year` string, nullable: Tax year
  - `recipient_email` string, nullable: Email address where request was sent
  - `recipient_name` string, nullable: Name of the recipient
  - `target_folder_id` string, uuid, nullable: Target folder ID
  - `intake_token` string, required: Secure intake token
  - `upload_url` string, required: Public upload URL for clients
  - `expires_at` string, date-time, required: When the upload link expires
  - `status` 'DRAFT' | 'EMAIL_SENT' | 'ACTIVE' | 'COMPLETED' | 'EXPIRED' | 'REVOKED', required: Enum for intake request status
  - `total_items` integer, required: Total number of items requested
  - `completed_items` integer, required: Number of items completed
  - `created_at` string, date-time, required: When the request was created
  - `updated_at` string, date-time, required: When the request was last updated
  - `created_by` string, required: User who created the request
  - `revoked_at` string, date-time, nullable: When the request was revoked
  - `revoked_by` string, nullable: User who revoked the request
  - `revoked_reason` string, nullable: Reason for revocation
  - `max_edits_per_item` integer, required: Maximum number of edits/reuploads allowed per item
  - `items` DocumentUploadRequestItemResponse[], nullable: List of regular request items
    - `document_type` 'W2' | 'W2_AS' | 'W2_CM' | 'W2_GU' | 'W2_VI' | 'FORM_W2G' | 'FORM_W3' | 'FORM_1040' | 'FORM_1040_SCHEDULE_A' | 'FORM_1040_SCHEDULE_B' | 'FORM_1040_SCHEDULE_E' | 'FORM_1040_SCHEDULE_F' | 'FORM_1040_SENIOR' | 'FORM_1098' | 'FORM_1098_C' | 'FORM_1098_E' | 'FORM_1098_T' | 'FORM_1099_INT' | 'FORM_1099_A' | 'FORM_1099_B' | 'FORM_1099_CAP' | 'FORM_1099_CONSOLIDATED_STATEMENT' | 'FORM_1099_DIV' | 'FORM_1099_R' | 'FORM_1099_G' | 'FORM_1099_MISC' | 'FORM_1099_NEC' | 'FORM_1099_C' | 'FORM_1099_K' | 'FORM_1099_LTC' | 'FORM_1099_OID' | 'FORM_1099_PATR' | 'FORM_1099_QA' | 'FORM_1099_SA' | 'FORM_1099_Q' | 'FORM_1099_DA' | 'FORM_RRB_1099' | 'FORM_RRB_1099R' | 'FORM_1099_S' | 'FORM_1042_S' | 'FORM_8805' | 'FORM_8288_A' | 'FORM_1095_A' | 'FORM_1095_C' | 'FORM_SSA_1099' | 'FORM_2439' | 'FORM_3921' | 'FORM_3922' | 'FORM_5498' | 'FORM_5498_SA' | 'SCHEDULE_K1_GENERIC' | 'SCH_K1_1041' | 'SCH_K1_1065' | 'SCH_K1_1120S' | 'FORM_1041_SCHEDULE_K1' | 'FORM_1065_SCHEDULE_K1' | 'FORM_1120S_SCHEDULE_K1' | 'INVOICE' | 'RECEIPT' | 'TAX_FORM' | 'PROFIT_AND_LOSS_STATEMENT' | 'PROFIT_AND_LOSS_STATEMENT_BUSINESS' | 'PROFIT_AND_LOSS_STATEMENT_FARM' | 'PROFIT_AND_LOSS_STATEMENT_RENTAL' | 'INCOME_STATEMENT' | 'GENERAL_LEDGER' | 'TRIAL_BALANCE' | 'BALANCE_SHEET' | 'SCHEDULE_C_INPUT' | 'PREVIOUS_YEAR_RETURN' | 'BROKERAGE_STATEMENT' | 'ASSETS_PURCHASED_BUSINESS' | 'ASSETS_SOLD_BUSINESS' | 'ASSETS_PURCHASED_RENTAL' | 'ASSETS_SOLD_RENTAL' | 'ASSETS_PURCHASED_FARM' | 'ASSETS_SOLD_FARM' | 'MEDICAL_EXPENSES' | 'CHARITABLE_CONTRIBUTIONS_CASH' | 'CHARITABLE_CONTRIBUTIONS_NON_CASH' | 'PERSONAL_PROPERTY_TAXES' | 'SALES_AND_USE_TAXES' | 'VEHICLE_EXPENSES' | 'DAY_CARE_EXPENSES' | 'MAJOR_PURCHASES' | 'PROPERTY_TAX_STATEMENT' | 'ESTIMATED_TAX_PAYMENT_RECEIPTS' | 'CLOSING_STATEMENT_REAL_ESTATE' | 'PREVIOUS_YEAR_TAX_RETURNS' | 'TAX_RETURN' | 'TAX_ORGANIZER' | 'TAX_PLANNING' | 'REPAIRS_AND_IMPROVEMENTS_RENTAL' | 'PAYROLL_TAX_REPORT' | 'CLIENT_INTAKE_FORM' | 'GOVERNMENT_ISSUED_IDENTIFICATION' | 'IRS_NOTICE_OR_LETTER' | 'DEPENDENT_DOCUMENTATION' | 'FOREIGN_FINANCIAL_ACCOUNTS' | 'FOREIGN_INCOME_DOCUMENTATION' | '529_PLAN_STATEMENT' | '83B_ELECTION_STATEMENT' | 'SALES_BY_STATE_REPORT' | 'STATES_FILING_SALES_TAX_RETURNS' | 'VEHICLE_SELLER_REPORT' | 'HEALTH_INSURANCE_PREMIUM_STATEMENT' | 'BIRTH_CERTIFICATE' | 'DRIVERS_LICENSE' | 'DIRECT_DEPOSIT' | 'REGISTRATION_RENEWAL_NOTICE' | 'ENGAGEMENT_LETTER' | 'SERVICE_AGREEMENT' | 'CLIENT_NOTE' | 'BUNDLED_DOCUMENT' | 'OTHER_DOCUMENTS' | 'UNCATEGORIZED' | 'VESTING_STATEMENT' | 'EXERCISE_CONFIRMATION' | 'CLERGY_INFORMATION' | 'OTHER'
    - `description` string, nullable: Additional instructions for this specific document type
    - `notes` string, nullable: Optional notes from CPA for this specific document type request
    - `tags` string[], nullable: Tags/instance names associated with this document item
    - `is_optional` boolean: Whether this document is optional or required
    - `is_additional_document` boolean: Whether this is an additional document added by the client
    - `is_voluntary_document` boolean: Whether this is a voluntary document (no document type, not counted in totals)
    - `extraction_enabled` boolean: Whether to automatically start document extraction after upload for this specific item
    - `max_files_per_item` integer: Maximum number of files allowed for this specific document type
    - `id` string, uuid, required: Unique identifier for the request item
    - `intake_request_id` string, uuid, required: ID of the parent intake request
    - `display_order` integer, required: Display order in the UI
    - `status` 'DRAFT' | 'PENDING' | 'UPLOADED' | 'MAPPED' | 'ANSWERED' | 'SKIPPED' | 'REJECTED', required: Enum for intake request item status
    - `edit_count` integer, required: Number of times this item has been edited/reuploaded
    - `client_notes` string, nullable: Optional notes added by the client/user for this document item
    - `document_type_label` string, nullable: Human-readable label for the document type (None for voluntary documents)
    - `uploaded_by` string, nullable: Name of the person who uploaded the document (for CPA view)
    - `can_modify` boolean: Whether this item can still be modified (false if UPLOADED)
    - `rejection_reason` string, nullable: Reason provided when rejecting this document item (only set when status is REJECTED)
    - `created_at` string, date-time, required: When the item was created
    - `updated_at` string, date-time, required: When the item was last updated
    - `uploaded_documents` UploadedDocumentInfo[], nullable: List of uploaded documents for this item (only included when status is UPLOADED)
      - `id` string, required: Document ID (scoped to upload request)
      - `name` string, required: Document name
      - `original_filename` string, required: Original filename
      - `file_size` integer, required: File size in bytes
      - `mime_type` string, required: MIME type
      - `uploaded_at` string, date-time, required: When the document was uploaded
      - `extraction_status` string, nullable: Document extraction status
      - `document_matching` DocumentMatchingInfo: Schema for document type matching information
        - `is_document_classification_match` boolean, nullable: Whether document_classification matches requested document_type (strict match)
        - `is_instance_name_match` boolean, nullable: Whether instance_name matches requested instance_name (fuzzy match)
        - `instance_match_score` number, nullable: Instance-name match score (0-100) computed via rapidfuzz partial_ratio.
        - `document_classification` string, nullable: DEPRECATED human-readable display name of the matched type. Prefer document_type_identifier (stable routing key) + document_type_id. Phase 3 removal.
        - `document_type_id` string, uuid, nullable: Canonical document type id (FK to supported_document_types) of the matched document's CURRENT type. Source of truth after a reclassify; null until the document has a type.
        - `document_type_identifier` string, nullable: Canonical document_identifier of the matched document's CURRENT type (e.g. 'W2', 'FORM_1099_INT'), resolved from document_type_id. Stable routing/compare key — use THIS instead of the human-readable document_classification.
        - `document_type_display_name` string, nullable: Canonical human-readable display name of the matched document's CURRENT type, resolved from document_type_id. Read THIS for display (replaces the legacy document_classification, which held the display name).
        - `instance_name` string, nullable: Instance name from automatic classification functionality
        - `is_implicit_document_matching` boolean, nullable: True when SUGGESTION_APPLIED was done implicitly (by system); False when applied by user confirm-match; None when no suggestion was applied.
        - `document_classification_status` string, nullable: Latest document classification audit status for this document (ACCEPTED, IN_PROGRESS, COMPLETED, FAILED).
  - `additional_documents` DocumentUploadRequestItemResponse[], nullable: List of additional documents added by the client
    - `document_type` 'W2' | 'W2_AS' | 'W2_CM' | 'W2_GU' | 'W2_VI' | 'FORM_W2G' | 'FORM_W3' | 'FORM_1040' | 'FORM_1040_SCHEDULE_A' | 'FORM_1040_SCHEDULE_B' | 'FORM_1040_SCHEDULE_E' | 'FORM_1040_SCHEDULE_F' | 'FORM_1040_SENIOR' | 'FORM_1098' | 'FORM_1098_C' | 'FORM_1098_E' | 'FORM_1098_T' | 'FORM_1099_INT' | 'FORM_1099_A' | 'FORM_1099_B' | 'FORM_1099_CAP' | 'FORM_1099_CONSOLIDATED_STATEMENT' | 'FORM_1099_DIV' | 'FORM_1099_R' | 'FORM_1099_G' | 'FORM_1099_MISC' | 'FORM_1099_NEC' | 'FORM_1099_C' | 'FORM_1099_K' | 'FORM_1099_LTC' | 'FORM_1099_OID' | 'FORM_1099_PATR' | 'FORM_1099_QA' | 'FORM_1099_SA' | 'FORM_1099_Q' | 'FORM_1099_DA' | 'FORM_RRB_1099' | 'FORM_RRB_1099R' | 'FORM_1099_S' | 'FORM_1042_S' | 'FORM_8805' | 'FORM_8288_A' | 'FORM_1095_A' | 'FORM_1095_C' | 'FORM_SSA_1099' | 'FORM_2439' | 'FORM_3921' | 'FORM_3922' | 'FORM_5498' | 'FORM_5498_SA' | 'SCHEDULE_K1_GENERIC' | 'SCH_K1_1041' | 'SCH_K1_1065' | 'SCH_K1_1120S' | 'FORM_1041_SCHEDULE_K1' | 'FORM_1065_SCHEDULE_K1' | 'FORM_1120S_SCHEDULE_K1' | 'INVOICE' | 'RECEIPT' | 'TAX_FORM' | 'PROFIT_AND_LOSS_STATEMENT' | 'PROFIT_AND_LOSS_STATEMENT_BUSINESS' | 'PROFIT_AND_LOSS_STATEMENT_FARM' | 'PROFIT_AND_LOSS_STATEMENT_RENTAL' | 'INCOME_STATEMENT' | 'GENERAL_LEDGER' | 'TRIAL_BALANCE' | 'BALANCE_SHEET' | 'SCHEDULE_C_INPUT' | 'PREVIOUS_YEAR_RETURN' | 'BROKERAGE_STATEMENT' | 'ASSETS_PURCHASED_BUSINESS' | 'ASSETS_SOLD_BUSINESS' | 'ASSETS_PURCHASED_RENTAL' | 'ASSETS_SOLD_RENTAL' | 'ASSETS_PURCHASED_FARM' | 'ASSETS_SOLD_FARM' | 'MEDICAL_EXPENSES' | 'CHARITABLE_CONTRIBUTIONS_CASH' | 'CHARITABLE_CONTRIBUTIONS_NON_CASH' | 'PERSONAL_PROPERTY_TAXES' | 'SALES_AND_USE_TAXES' | 'VEHICLE_EXPENSES' | 'DAY_CARE_EXPENSES' | 'MAJOR_PURCHASES' | 'PROPERTY_TAX_STATEMENT' | 'ESTIMATED_TAX_PAYMENT_RECEIPTS' | 'CLOSING_STATEMENT_REAL_ESTATE' | 'PREVIOUS_YEAR_TAX_RETURNS' | 'TAX_RETURN' | 'TAX_ORGANIZER' | 'TAX_PLANNING' | 'REPAIRS_AND_IMPROVEMENTS_RENTAL' | 'PAYROLL_TAX_REPORT' | 'CLIENT_INTAKE_FORM' | 'GOVERNMENT_ISSUED_IDENTIFICATION' | 'IRS_NOTICE_OR_LETTER' | 'DEPENDENT_DOCUMENTATION' | 'FOREIGN_FINANCIAL_ACCOUNTS' | 'FOREIGN_INCOME_DOCUMENTATION' | '529_PLAN_STATEMENT' | '83B_ELECTION_STATEMENT' | 'SALES_BY_STATE_REPORT' | 'STATES_FILING_SALES_TAX_RETURNS' | 'VEHICLE_SELLER_REPORT' | 'HEALTH_INSURANCE_PREMIUM_STATEMENT' | 'BIRTH_CERTIFICATE' | 'DRIVERS_LICENSE' | 'DIRECT_DEPOSIT' | 'REGISTRATION_RENEWAL_NOTICE' | 'ENGAGEMENT_LETTER' | 'SERVICE_AGREEMENT' | 'CLIENT_NOTE' | 'BUNDLED_DOCUMENT' | 'OTHER_DOCUMENTS' | 'UNCATEGORIZED' | 'VESTING_STATEMENT' | 'EXERCISE_CONFIRMATION' | 'CLERGY_INFORMATION' | 'OTHER'
    - `description` string, nullable: Additional instructions for this specific document type
    - `notes` string, nullable: Optional notes from CPA for this specific document type request
    - `tags` string[], nullable: Tags/instance names associated with this document item
    - `is_optional` boolean: Whether this document is optional or required
    - `is_additional_document` boolean: Whether this is an additional document added by the client
    - `is_voluntary_document` boolean: Whether this is a voluntary document (no document type, not counted in totals)
    - `extraction_enabled` boolean: Whether to automatically start document extraction after upload for this specific item
    - `max_files_per_item` integer: Maximum number of files allowed for this specific document type
    - `id` string, uuid, required: Unique identifier for the request item
    - `intake_request_id` string, uuid, required: ID of the parent intake request
    - `display_order` integer, required: Display order in the UI
    - `status` 'DRAFT' | 'PENDING' | 'UPLOADED' | 'MAPPED' | 'ANSWERED' | 'SKIPPED' | 'REJECTED', required: Enum for intake request item status
    - `edit_count` integer, required: Number of times this item has been edited/reuploaded
    - `client_notes` string, nullable: Optional notes added by the client/user for this document item
    - `document_type_label` string, nullable: Human-readable label for the document type (None for voluntary documents)
    - `uploaded_by` string, nullable: Name of the person who uploaded the document (for CPA view)
    - `can_modify` boolean: Whether this item can still be modified (false if UPLOADED)
    - `rejection_reason` string, nullable: Reason provided when rejecting this document item (only set when status is REJECTED)
    - `created_at` string, date-time, required: When the item was created
    - `updated_at` string, date-time, required: When the item was last updated
    - `uploaded_documents` UploadedDocumentInfo[], nullable: List of uploaded documents for this item (only included when status is UPLOADED)
      - `id` string, required: Document ID (scoped to upload request)
      - `name` string, required: Document name
      - `original_filename` string, required: Original filename
      - `file_size` integer, required: File size in bytes
      - `mime_type` string, required: MIME type
      - `uploaded_at` string, date-time, required: When the document was uploaded
      - `extraction_status` string, nullable: Document extraction status
      - `document_matching` DocumentMatchingInfo: Schema for document type matching information
        - `is_document_classification_match` boolean, nullable: Whether document_classification matches requested document_type (strict match)
        - `is_instance_name_match` boolean, nullable: Whether instance_name matches requested instance_name (fuzzy match)
        - `instance_match_score` number, nullable: Instance-name match score (0-100) computed via rapidfuzz partial_ratio.
        - `document_classification` string, nullable: DEPRECATED human-readable display name of the matched type. Prefer document_type_identifier (stable routing key) + document_type_id. Phase 3 removal.
        - `document_type_id` string, uuid, nullable: Canonical document type id (FK to supported_document_types) of the matched document's CURRENT type. Source of truth after a reclassify; null until the document has a type.
        - `document_type_identifier` string, nullable: Canonical document_identifier of the matched document's CURRENT type (e.g. 'W2', 'FORM_1099_INT'), resolved from document_type_id. Stable routing/compare key — use THIS instead of the human-readable document_classification.
        - `document_type_display_name` string, nullable: Canonical human-readable display name of the matched document's CURRENT type, resolved from document_type_id. Read THIS for display (replaces the legacy document_classification, which held the display name).
        - `instance_name` string, nullable: Instance name from automatic classification functionality
        - `is_implicit_document_matching` boolean, nullable: True when SUGGESTION_APPLIED was done implicitly (by system); False when applied by user confirm-match; None when no suggestion was applied.
        - `document_classification_status` string, nullable: Latest document classification audit status for this document (ACCEPTED, IN_PROGRESS, COMPLETED, FAILED).
  - `voluntary_documents` DocumentUploadRequestItemResponse[], nullable: List of voluntary documents uploaded without document type (not counted in totals)
    - `document_type` 'W2' | 'W2_AS' | 'W2_CM' | 'W2_GU' | 'W2_VI' | 'FORM_W2G' | 'FORM_W3' | 'FORM_1040' | 'FORM_1040_SCHEDULE_A' | 'FORM_1040_SCHEDULE_B' | 'FORM_1040_SCHEDULE_E' | 'FORM_1040_SCHEDULE_F' | 'FORM_1040_SENIOR' | 'FORM_1098' | 'FORM_1098_C' | 'FORM_1098_E' | 'FORM_1098_T' | 'FORM_1099_INT' | 'FORM_1099_A' | 'FORM_1099_B' | 'FORM_1099_CAP' | 'FORM_1099_CONSOLIDATED_STATEMENT' | 'FORM_1099_DIV' | 'FORM_1099_R' | 'FORM_1099_G' | 'FORM_1099_MISC' | 'FORM_1099_NEC' | 'FORM_1099_C' | 'FORM_1099_K' | 'FORM_1099_LTC' | 'FORM_1099_OID' | 'FORM_1099_PATR' | 'FORM_1099_QA' | 'FORM_1099_SA' | 'FORM_1099_Q' | 'FORM_1099_DA' | 'FORM_RRB_1099' | 'FORM_RRB_1099R' | 'FORM_1099_S' | 'FORM_1042_S' | 'FORM_8805' | 'FORM_8288_A' | 'FORM_1095_A' | 'FORM_1095_C' | 'FORM_SSA_1099' | 'FORM_2439' | 'FORM_3921' | 'FORM_3922' | 'FORM_5498' | 'FORM_5498_SA' | 'SCHEDULE_K1_GENERIC' | 'SCH_K1_1041' | 'SCH_K1_1065' | 'SCH_K1_1120S' | 'FORM_1041_SCHEDULE_K1' | 'FORM_1065_SCHEDULE_K1' | 'FORM_1120S_SCHEDULE_K1' | 'INVOICE' | 'RECEIPT' | 'TAX_FORM' | 'PROFIT_AND_LOSS_STATEMENT' | 'PROFIT_AND_LOSS_STATEMENT_BUSINESS' | 'PROFIT_AND_LOSS_STATEMENT_FARM' | 'PROFIT_AND_LOSS_STATEMENT_RENTAL' | 'INCOME_STATEMENT' | 'GENERAL_LEDGER' | 'TRIAL_BALANCE' | 'BALANCE_SHEET' | 'SCHEDULE_C_INPUT' | 'PREVIOUS_YEAR_RETURN' | 'BROKERAGE_STATEMENT' | 'ASSETS_PURCHASED_BUSINESS' | 'ASSETS_SOLD_BUSINESS' | 'ASSETS_PURCHASED_RENTAL' | 'ASSETS_SOLD_RENTAL' | 'ASSETS_PURCHASED_FARM' | 'ASSETS_SOLD_FARM' | 'MEDICAL_EXPENSES' | 'CHARITABLE_CONTRIBUTIONS_CASH' | 'CHARITABLE_CONTRIBUTIONS_NON_CASH' | 'PERSONAL_PROPERTY_TAXES' | 'SALES_AND_USE_TAXES' | 'VEHICLE_EXPENSES' | 'DAY_CARE_EXPENSES' | 'MAJOR_PURCHASES' | 'PROPERTY_TAX_STATEMENT' | 'ESTIMATED_TAX_PAYMENT_RECEIPTS' | 'CLOSING_STATEMENT_REAL_ESTATE' | 'PREVIOUS_YEAR_TAX_RETURNS' | 'TAX_RETURN' | 'TAX_ORGANIZER' | 'TAX_PLANNING' | 'REPAIRS_AND_IMPROVEMENTS_RENTAL' | 'PAYROLL_TAX_REPORT' | 'CLIENT_INTAKE_FORM' | 'GOVERNMENT_ISSUED_IDENTIFICATION' | 'IRS_NOTICE_OR_LETTER' | 'DEPENDENT_DOCUMENTATION' | 'FOREIGN_FINANCIAL_ACCOUNTS' | 'FOREIGN_INCOME_DOCUMENTATION' | '529_PLAN_STATEMENT' | '83B_ELECTION_STATEMENT' | 'SALES_BY_STATE_REPORT' | 'STATES_FILING_SALES_TAX_RETURNS' | 'VEHICLE_SELLER_REPORT' | 'HEALTH_INSURANCE_PREMIUM_STATEMENT' | 'BIRTH_CERTIFICATE' | 'DRIVERS_LICENSE' | 'DIRECT_DEPOSIT' | 'REGISTRATION_RENEWAL_NOTICE' | 'ENGAGEMENT_LETTER' | 'SERVICE_AGREEMENT' | 'CLIENT_NOTE' | 'BUNDLED_DOCUMENT' | 'OTHER_DOCUMENTS' | 'UNCATEGORIZED' | 'VESTING_STATEMENT' | 'EXERCISE_CONFIRMATION' | 'CLERGY_INFORMATION' | 'OTHER'
    - `description` string, nullable: Additional instructions for this specific document type
    - `notes` string, nullable: Optional notes from CPA for this specific document type request
    - `tags` string[], nullable: Tags/instance names associated with this document item
    - `is_optional` boolean: Whether this document is optional or required
    - `is_additional_document` boolean: Whether this is an additional document added by the client
    - `is_voluntary_document` boolean: Whether this is a voluntary document (no document type, not counted in totals)
    - `extraction_enabled` boolean: Whether to automatically start document extraction after upload for this specific item
    - `max_files_per_item` integer: Maximum number of files allowed for this specific document type
    - `id` string, uuid, required: Unique identifier for the request item
    - `intake_request_id` string, uuid, required: ID of the parent intake request
    - `display_order` integer, required: Display order in the UI
    - `status` 'DRAFT' | 'PENDING' | 'UPLOADED' | 'MAPPED' | 'ANSWERED' | 'SKIPPED' | 'REJECTED', required: Enum for intake request item status
    - `edit_count` integer, required: Number of times this item has been edited/reuploaded
    - `client_notes` string, nullable: Optional notes added by the client/user for this document item
    - `document_type_label` string, nullable: Human-readable label for the document type (None for voluntary documents)
    - `uploaded_by` string, nullable: Name of the person who uploaded the document (for CPA view)
    - `can_modify` boolean: Whether this item can still be modified (false if UPLOADED)
    - `rejection_reason` string, nullable: Reason provided when rejecting this document item (only set when status is REJECTED)
    - `created_at` string, date-time, required: When the item was created
    - `updated_at` string, date-time, required: When the item was last updated
    - `uploaded_documents` UploadedDocumentInfo[], nullable: List of uploaded documents for this item (only included when status is UPLOADED)
      - `id` string, required: Document ID (scoped to upload request)
      - `name` string, required: Document name
      - `original_filename` string, required: Original filename
      - `file_size` integer, required: File size in bytes
      - `mime_type` string, required: MIME type
      - `uploaded_at` string, date-time, required: When the document was uploaded
      - `extraction_status` string, nullable: Document extraction status
      - `document_matching` DocumentMatchingInfo: Schema for document type matching information
        - `is_document_classification_match` boolean, nullable: Whether document_classification matches requested document_type (strict match)
        - `is_instance_name_match` boolean, nullable: Whether instance_name matches requested instance_name (fuzzy match)
        - `instance_match_score` number, nullable: Instance-name match score (0-100) computed via rapidfuzz partial_ratio.
        - `document_classification` string, nullable: DEPRECATED human-readable display name of the matched type. Prefer document_type_identifier (stable routing key) + document_type_id. Phase 3 removal.
        - `document_type_id` string, uuid, nullable: Canonical document type id (FK to supported_document_types) of the matched document's CURRENT type. Source of truth after a reclassify; null until the document has a type.
        - `document_type_identifier` string, nullable: Canonical document_identifier of the matched document's CURRENT type (e.g. 'W2', 'FORM_1099_INT'), resolved from document_type_id. Stable routing/compare key — use THIS instead of the human-readable document_classification.
        - `document_type_display_name` string, nullable: Canonical human-readable display name of the matched document's CURRENT type, resolved from document_type_id. Read THIS for display (replaces the legacy document_classification, which held the display name).
        - `instance_name` string, nullable: Instance name from automatic classification functionality
        - `is_implicit_document_matching` boolean, nullable: True when SUGGESTION_APPLIED was done implicitly (by system); False when applied by user confirm-match; None when no suggestion was applied.
        - `document_classification_status` string, nullable: Latest document classification audit status for this document (ACCEPTED, IN_PROGRESS, COMPLETED, FAILED).
  - `questionnaire_from_pyr` string, nullable: Questionnaire processing status for previous year return (if applicable for this intake request)
  - `document_checklist_suggestion` string, nullable: Document checklist processing status for previous year return (if applicable for this intake request)
  - `previous_year_return` PreviousYearReturnInfo, required: Previous year return reupload eligibility and document reference for dashboard.
    - `is_reupload_allowed` boolean, required: True if reupload is allowed (no PREVIOUS_YEAR_RETURN document exists, or questionnaire/document checklist processing failed for that tax year).
    - `document_id` string, uuid, nullable: ID of the PREVIOUS_YEAR_RETURN document when reupload is not allowed.
    - `document_name` string, nullable: Name of the PREVIOUS_YEAR_RETURN document when reupload is not allowed.
  - `status_label` string, required: Human-readable status for UI display.

## Other responses

- `422`: Validation Error

---

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