> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept Proposal

> Accepts a proposal on behalf of the recipient.

# 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

<ParamField path="proposalId" type="string" required>
  The unique string identifier (GUID) of the proposal.
</ParamField>

## 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.

<ResponseField name="file" type="number" required>
  The numeric identifier of the proposal file.
</ResponseField>

<ResponseField name="accessToken" type="string" required>
  A token exchanged for a full auth session via `exchangeToken()`.
</ResponseField>

## Examples

### Accept a proposal

```http theme={null}
PUT /api/public/proposals/abc123-def456/accept
Authorization: Bearer {token}
```

```json theme={null}
{
  "file": 42,
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
```

## TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

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