---
title: "Accept Manual 2D Touchup"
method: POST
path: "/questionnaires/jobs/{job_id}/accept-manual-2d-touchup"
tags: ["questionnaires"]
---

# Accept Manual 2D Touchup

`POST /questionnaires/jobs/{job_id}/accept-manual-2d-touchup`

## Request

- Base URL: `https://api.threadchain.pro` (the document declares no server; this is the origin it was published from)
- URL: `https://api.threadchain.pro/questionnaires/jobs/{job_id}/accept-manual-2d-touchup`
- Auth: OAuth 2
  - Password
  - Token URL: `auth/token`

Accept a manual 2D flat touch-up (drawn in the workspace with pencil/cover/eraser).

Replaces ``front_2d_url`` or ``back_2d_url``, clears downstream overlays, and enqueues
construction callout + POM callout regeneration from the updated flat.

## Path parameters

- `job_id` string, uuid, required

## Request body `multipart/form-data`

- BodyAcceptManual2dTouchupQuestionnairesJobsJobIdAcceptManual2dTouchupPost
  - `side` string, required: 'front' or 'back'
  - `image` string, binary, required: Merged PNG: base flat + pencil/cover/eraser strokes

## Response `200`

Successful Response

- GetJobStatusResponse
  - `job_id` string, uuid, required
  - `session_id` string, uuid, required
  - `status` 'queued' | 'processing' | 'awaiting_size_studio' | 'awaiting_review' | 'awaiting_3d_start' | 'awaiting_3d_review' | 'awaiting_construction' | 'workspace_active' | 'completed' | 'failed', required
  - `progress` integer, required
  - `brand_id` string, uuid, nullable
  - `manufacturer_ids` string[]
  - `brand` TechPackBrandSummary: Compact brand reference returned alongside a tech pack.
    - `id` string, uuid, required
    - `name` string, required
    - `manufacturer_id` string, uuid, nullable
    - `contact_email` string, nullable: Brand org owner's email; surfaced for manufacturer-side dashboards.
  - `manufacturers` TechPackManufacturerSummary[]
    - `id` string, uuid, required
    - `company_name` string, nullable
    - `factory_name` string, nullable
  - `result_url` string, nullable
  - `preview_url` string, nullable
  - `front_3d_url` string, nullable
  - `back_3d_url` string, nullable
  - `left_3d_url` string, nullable
  - `right_3d_url` string, nullable
  - `front_2d_url` string, nullable
  - `back_2d_url` string, nullable
  - `left_2d_url` string, nullable
  - `right_2d_url` string, nullable
  - `inner_front_2d_url` string, nullable
  - `inner_back_2d_url` string, nullable
  - `pom_overlay_outer_front_url` string, nullable
  - `pom_overlay_outer_back_url` string, nullable
  - `pom_overlay_inner_front_url` string, nullable
  - `pom_overlay_inner_back_url` string, nullable
  - `bom_callout_giq_outer_front_url` string, nullable
  - `bom_callout_giq_outer_back_url` string, nullable
  - `bom_callout_giq_inner_front_url` string, nullable
  - `bom_callout_giq_inner_back_url` string, nullable
  - `bom_callout_nogiq_outer_front_url` string, nullable
  - `bom_callout_nogiq_outer_back_url` string, nullable
  - `bom_callout_nogiq_inner_front_url` string, nullable
  - `bom_callout_nogiq_inner_back_url` string, nullable
  - `refinement_count_front` integer
  - `refinement_count_back` integer
  - `refinement_count_left` integer
  - `refinement_count_right` integer
  - `refinement_count_2d_front` integer
  - `refinement_count_2d_back` integer
  - `refinement_count_2d_left` integer
  - `refinement_count_2d_right` integer
  - `share_code` string, nullable
  - `public_share_view_count` integer
  - `last_public_share_view_at` string, date-time, nullable
  - `error_message` string, nullable
  - `released_at` string, date-time, nullable
  - `created_at` string, date-time, required
  - `started_at` string, date-time, nullable
  - `completed_at` string, date-time, nullable
  - `manufacturer_completed_at` string, date-time, nullable
  - `download_url` string, nullable
  - `refinement_payload` object, nullable
  - `flat2d_regenerate_count` integer
  - `flat2d_regenerate_payload` object, nullable
  - `techpack_import_status` string, nullable
  - `techpack_import_step` string, nullable
  - `generation_step` string, nullable
  - `techpack_import_incomplete` boolean, nullable
  - `techpack_import_unresolved_required` integer, nullable
  - `techpack_import_draft_acknowledged` boolean, nullable
  - `entitlements` object, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/threadchain/apis/threadchain-backend.md) - [All operations](https://skmtc.dev/threadchain/apis/threadchain-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/threadchain/apis/threadchain-backend/revisions/8ee288a7e6bd?raw)
