---
title: "Get the completed enrollment's book-setup progress"
method: GET
path: "/client-onboarding/public/enrollments/{token}/book-setup"
tags: ["Client Onboarding"]
---

# Get the completed enrollment's book-setup progress

`GET /client-onboarding/public/enrollments/{token}/book-setup`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/client-onboarding/public/enrollments/{token}/book-setup`
- Auth: none required

Returns remaining business questions, optional file collection and deferral, and Assisted Import progress authorized by the prospect resume token. This prospect operation is excluded from MCP because agents must not impersonate the client.

## Path parameters

- `token` string, required

## Response `200`

Current post-sale book-setup projection

- PublicClientOnboardingBookSetupResponse
  - `bookSetup` PublicClientOnboardingBookSetup, required
    - `enrollmentId` string, uuid, required
    - `companyOrganizationId` string, uuid, required
    - `firm` PublicClientOnboardingFrozenFirm, required
      - `name` string, required
      - `email` string, email, required
      - `phone` string, nullable, required
      - `website` string, nullable, required
      - `branding` object, required
        - `logoUrl` string, uri, nullable, required
        - `primaryColor` string, required
        - `accentColor` string, required
      - `onboardingContact` object, required
        - `name` string, nullable, required
        - `title` string, nullable, required
        - `email` string, email, required
        - `phone` string, nullable, required
    - `phase` 'business_questions' | 'book_source' | 'bank_connection' | 'file_upload' | 'ready_for_review' | 'submitted', required
    - `questions` ClientOnboardingPublicQuestionSnapshot, required
      - `standard` ClientOnboardingPublicStandardQuestion[], required
        - `key` string, required
        - `prompt` string, required
        - `type` 'short_text' | 'long_text' | 'yes_no' | 'date' | 'single_select' | 'address' | 'contact', required
        - `enabled` boolean, required
        - `required` boolean, required
        - `order` integer, required
        - `options` string[]
      - `custom` ClientOnboardingCustomQuestion[], required
        - `id` string, uuid, required
        - `prompt` string, required
        - `type` 'short_text' | 'long_text' | 'yes_no' | 'single_select', required
        - `required` boolean, required
        - `options` string[], required
        - `order` integer, required
    - `setupAnswers` object, required
    - `questionsComplete` boolean, required
    - `filesDeferredAt` string, date-time, nullable
    - `bookSetupMethod` 'quickbooks' | 'bank_csv' | 'fresh_start' | 'null', nullable, required
    - `cutoffDate` string, date, nullable, required
    - `accountingBasis` 'accrual' | 'cash' | 'not_sure' | 'null', nullable, required
    - `sourceLocked` boolean, required
    - `bankConnection` object, nullable, required
      - `taskId` string, uuid, required
      - `status` 'open' | 'completed' | 'cancelled' | 'expired', required
      - `url` string, uri, required
      - `completedAt` string, date-time, nullable, required
    - `uploads` object, required
      - `uploadBatchId` string, uuid, nullable, required
      - `filesReadyAt` string, date-time, nullable, required
      - `requiredRoles` string[], required
      - `allowedRoles` string[], required
      - `files` PublicClientOnboardingBookSetupFile[], required
        - `role` 'chart_of_accounts' | 'journal' | 'profit_and_loss' | 'balance_sheet' | 'bank_activity' | 'source_file', required
        - `fileName` string, required
        - `fileSize` integer, required
        - `mimeType` string, required
    - `submission` object, nullable, required
      - `submittedAt` string, date-time, required
      - `assistedImport` object, nullable, required
        - `id` string, uuid, required
        - `status` 'ready' | 'in_progress' | 'needs_information' | 'complete', required
        - `statusLabel` string, required
      - `portal` object, required
        - `status` 'active' | 'invite_pending' | 'invite_expired', required
        - `actionUrl` string, nullable, required

## Other responses

- `409`: The enrollment is not completed, paid, signed, and provisioned
- `410`: The resume token is invalid or expired
- `429`: Rate limit exceeded
- `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)
