---
title: "Replace firm client-onboarding service packages"
method: PUT
path: "/client-onboarding/packages"
tags: ["Client Onboarding"]
---

# Replace firm client-onboarding service packages

`PUT /client-onboarding/packages`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/client-onboarding/packages`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Replaces the complete active package set with zero to three draft or published packages and archives omitted active packages. Requires Firm Owner access.

## Request body

- ClientOnboardingPackageReplace
  - `packages` ClientOnboardingServicePackageInput[], required
    - `id` string, uuid
    - `slug` string
    - `name` string, required
    - `description` string
    - `features` string[]
    - `monthlyPriceCents` integer, required
    - `setupFeeCents` integer
    - `recommended` boolean
    - `displayOrder` integer, required
    - `status` 'draft' | 'published'

## Response `200`

Updated firm client-onboarding configuration

- ClientOnboardingConfigurationResponse
  - `configuration` object, required
    - `firmOrganizationId` string, uuid, required
    - `firmSlug` string, required
    - `defaultOnboardingMemberId` string, uuid, nullable, required
    - `stripeIntegrationId` string, uuid, nullable, required
    - `publicContactTitle` string, nullable
    - `publicContactPhone` string, nullable
    - `packages` object[], required
    - `standardQuestions` object[], required
    - `customQuestions` 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
    - `loeDraft` object, required
      - `document` ClientOnboardingLoeDocument
        - `type` 'doc', required
        - `content` ClientOnboardingLoeNode[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - `contentHash` string
      - `updatedAt` string, date-time, nullable
    - `publishedLoe` object, nullable, required
    - `availableOnboardingContacts` object[], required
    - `stripeReadiness` object, required
    - `branding` object, required
    - `readiness` object, required
    - `capabilities` object, required
      - `canManageConfiguration` boolean, required
      - `canManagePackages` boolean, required
      - `canPublishEngagementLetter` boolean, required
      - `canManageBranding` boolean, required

## Other responses

- `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)
