---
title: "Sign and accept the presented proposal"
method: POST
path: "/client-onboarding/public/proposals/{token}/accept"
tags: ["CRM Proposals"]
---

# Sign and accept the presented proposal

`POST /client-onboarding/public/proposals/{token}/accept`

## Request

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

Client-facing proposal step. No login: the opaque link token in the path is the credential, checked for existence, revocation and expiry. Rate-limited. Signing, payment setup or a past service date never charges; the firm starts billing separately. Not exposed through MCP; agents must not act as the client.

## Path parameters

- `token` string, required

## Request body

- object
  - `selections` object, required
  - `signatureName` string, required
  - `consent` true, required
  - `contentHash` string, required
  - `presentedAt` string, date-time, required
  - `proof` string, required

## Response `200`

Success

- object

## Other responses

- `400`: Invalid input
- `404`: Link not found
- `409`: The proposal changed or is no longer open
- `410`: The link expired or was replaced
- `429`: Rate limit exceeded

---

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