---
title: "Re-run the back work bookkeeping intake scan"
method: POST
path: "/tally/programs/backwork-bookkeeping/{id}/scan"
tags: ["Tally"]
---

# Re-run the back work bookkeeping intake scan

`POST /tally/programs/backwork-bookkeeping/{id}/scan`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/tally/programs/backwork-bookkeeping/{id}/scan`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Requires firm owner/admin accounting authority. Re-runs deterministic CSV/XLSX normalization over the program inbox: maps transaction columns, detects date and sign conventions, builds synthetic calendar months, verifies running-balance anchors where possible, flags exact problem rows, and persists a digest-bound evidence package. Exact completed replays and proven same-account completed date overlaps are rejected; non-overlapping later periods remain allowed. When an export cannot prove its account identity and its dates overlap completed Back work, the scan holds that account and returns `accountOverlapQuestions`; re-post with `answers` to resolve (`different` proceeds, `same` refuses). Omit the body (or `answers`) to plainly re-scan. ZIP containers are not visible evidence rows. Read-only with respect to the books.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `answers` object[], required: One answer per flagged account.
    - `accountKey` string, required: Stable normalized account key from the raised overlap question.
    - `resolution` 'same' | 'different', required: `same` refuses the account as a double import; `different` proceeds.

## Response `200`

Intake scan report. Includes `scan.accountOverlapQuestions` when an unprovable-identity export overlaps completed Back work and the firm must answer same-or-different.

- object
  - `scan` object, required: The deterministic intake scan report.
    - `accountOverlapQuestions` object[]: Same-or-different questions raised for accounts whose overlap with a completed program the guard could not resolve. Present only while a hold is open; answer by re-posting this route with `answers`.
      - `accountKey` string, required
      - `accountLabel` string, required
      - `priorConversationId` string, uuid, required
      - `overlapStart` string, date, required
      - `overlapEnd` string, date, required

## Other responses

- `409`: The answer is refused: backwork_program_closed (import began or the program is terminal) or backwork_no_pending_overlap_question (an answer named no currently-raised question). Exact replays and proven same-account overlaps no longer 409 the scan; they surface as per-file problem statuses in the scan result (backwork_period_overlap and backwork_exact_replay note text) so the files can be replaced or removed.
- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
