Skip to main content
PUT
/
api
/
public
/
proposals
/
{proposalId}
/
accept
{
  "file": 123,
  "accessToken": "<string>"
}

Accept Proposal

Accepts the proposal, triggering any associated plan sign-ups, contract creation, and billing. This is the final step in the proposal flow after the recipient has reviewed and optionally e-signed the document.

Authentication

Requires prior proposal login authentication.

Path Parameters

proposalId
string
required
The unique string identifier (GUID) of the proposal.

Request Body

No request body required.

Response

Returns the proposal file ID and an access token. The portal exchanges this token for a full auth session.
file
number
required
The numeric identifier of the proposal file.
accessToken
string
required
A token exchanged for a full auth session via exchangeToken().

Examples

Accept a proposal

PUT /api/public/proposals/abc123-def456/accept
Authorization: Bearer {token}
{
  "file": 42,
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

TypeScript Integration

import endpoints from '@/api/endpoints'

const result = await httpClient.put<{ file: number; accessToken: string }>(endpoints.proposals.accept('abc123-def456'))
await exchangeToken(result.data.accessToken)