---
title: "Save answers to one carrier application"
method: POST
path: "/broker/submissions/{submission_id}/applications/{session_id}/checkpoint"
tags: ["Carrier quotes"]
---

# Save answers to one carrier application

`POST /broker/submissions/{submission_id}/applications/{session_id}/checkpoint`

## Request

- Base URL: `https://api.hedgespecialty.com/api/v1`
- URL: `https://api.hedgespecialty.com/api/v1/broker/submissions/{submission_id}/applications/{session_id}/checkpoint`
- Auth: OAuth 2
  - Authorization code: `https://api.hedgespecialty.com/api/v1/oauth/authorize`
  - Client credentials
  - Token URL: `https://api.hedgespecialty.com/api/v1/oauth/token`

The write half of the workspace. `session_id` is the
`ApplicationSection.application_id`. Send answers keyed by the
program's question keys in `field_changes` (clears in
`explicit_clears`, list edits in `collection_operations`) together
with the application's current `answer_revision` and
`schema_fingerprint`. Idempotent per `operation_id`. Returns a
receipt with the refreshed application, the keys applied and
rejected, and any shared-fact changes the answers implied (Hedge
maps facts across the submission's other applications
asynchronously; watch the changes stream). Requires the
`broker_submit` scope.

## Path parameters

- `submission_id` string, uuid, required
- `session_id` string, uuid, required

## Request body

- CheckpointCommand: Save answers to one application. Optimistic concurrency: echo the application's current `answer_revision` and `schema_fingerprint`; a mismatch answers 409 with the current application so you can re-apply. `operation_id` makes the save idempotent: a retried command with the same id replays the original receipt.
  - `operation_id` string, required
  - `expected_answer_revision` integer, required
  - `expected_schema_fingerprint` string, required
  - `field_changes` object: Answers to set
  - `explicit_clears` string[]: Question keys to clear explicitly.
  - `collection_operations` object[]
    - `field_key` string, required
    - `operation` 'insert' | 'update' | 'remove', required
    - `record_id` string, required
    - `changes` object
  - `selected_products` string[], nullable
  - `source_reference` SourceReference: Provenance of a fact or answer.
    - `source_id` string, required
    - `content_hash` string, required
    - `channel` 'broker_portal' | 'broker_email' | 'insured' | 'connected_app' | 'document' | 'paste' | 'mapping', required
    - `evidence` 'explicit' | 'translated' | 'assumed'
    - `snippet` string, nullable
    - `extractor_version` string, nullable

## Response `200`

Checkpoint receipt

- CheckpointReceipt
  - `operation_id` string, required
  - `application` ApplicationSection, required: One carrier application (a carrier-API quote session) inside the workspace: its schema, current answers, per-field ownership, and readiness. `application_id` is the `session_id` used by the checkpoint / request-quote / employers-classes paths. Revisions (`answer_revision`, `fact_revision`, `selection_revision`) and `schema_fingerprint` are the optimistic-concurrency tokens every command must echo.
    - `application_id` string, required
    - `workspace_id` string, required
    - `connection_id` string
    - `provider_key` string, required
    - `program_identifier` string, required
    - `owner_host` 'hedge' | 'bindly'
    - `owner_session_id` string
    - `route` 'hedge' | 'direct'
    - `market_program_id` string, uuid, nullable
    - `submission_id` string, uuid, nullable
    - `line_of_business` string, nullable
    - `schema` object, required: The normalized question schema (fields, required_field_keys, program identity); the same questions GET /broker/programs/{program_id}/application-schema projects.
    - `schema_fingerprint` string, required
    - `answers` object, required: Current answers keyed by question key.
    - `ownership` object
    - `answer_revision` integer, required
    - `fact_revision` integer
    - `selection_revision` integer
    - `selected_products` string[]
    - `available_products` string[]
    - `mapping_state` string: Whether Hedge's fact-to-answer mapping is idle or still running for this application.
    - `unresolved_dependencies` string[]
    - `missing` string[]: Required question keys still unanswered.
    - `errors` object[]
    - `visible_fields` string[]
    - `readiness` string, required: `needs_information` until every required visible question is answered, then `ready_for_quote`.
    - `request_state` string, required: Lifecycle of the last quote request for this application (draft until one is made).
    - `request_id` string, nullable
    - `result` object, nullable: The carrier outcome of the last request
    - `allowed_actions` string[]
  - `applied` string[], required
  - `rejected` object[], required
  - `fact_changes` Fact[]
    - `key` string, required
    - `value` unknown, required
    - `scope` string
    - `period` string, nullable
    - `source` SourceReference, required: Provenance of a fact or answer.
      - `source_id` string, required
      - `content_hash` string, required
      - `channel` 'broker_portal' | 'broker_email' | 'insured' | 'connected_app' | 'document' | 'paste' | 'mapping', required
      - `evidence` 'explicit' | 'translated' | 'assumed'
      - `snippet` string, nullable
      - `extractor_version` string, nullable
    - `confirmed` boolean
  - `facts_status` string

## Other responses

- `403`: broker_submit scope required
- `404`: Submission or application not found
- `409`: Stale revision or fingerprint; the body carries `code` and the current `application`
- `422`: Command rejected (`code: application_command_rejected`, e.g. an invalid classification)
- `503`: Save is busy (`code: application_busy`); retry the same operation after Retry-After

## Changes

- **2026-09-20** `7928528d98b2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/changes/broker/submissions/:submission_id/applications/:session_id/checkpoint/post.md)

---

[API](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api.md) - [All operations](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hedgespecialty/apis/hedge-submission-api/revisions/beefa9cdc11c?raw)
