---
id: ADR-ACC-REC-020
title: >-
  Drafts Change by Versioned Commands; Payout Correction Replaces the Whole
  Record
product_area: accounting
module: reconciliation
revision: 3
status: proposed
design_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Apply preparation through individual commands and use complete editable
  payloads for payout replacement.
constrains:
  - DOM-ACC-REC-001
  - DOM-ACC-REC-003
  - WF-ACC-REC-003
  - SCR-ACC-REC-003
  - SVC-ACC-REC-reconciliation
origin: OQ-ACC-REC-005; services-accounting docs/reconciliation/architecture.md §10.3
alternatives:
  - option: Add one atomic whole-draft command.
    why_not: 'That is an open recommended alternative, not the current implementation.'
  - option: Treat payout correction as a partial patch.
    why_not: Omitted values would no longer clearly mean clearing optional fields.
consequences:
  - >-
    Financial changes and notes advance versions; dismissals retain activity
    without doing so.
  - >-
    A console sequence can partially commit and qualifying contributions can
    disqualify the reviewing approver.
  - >-
    Payout replacement supplies required editable values and clears omitted
    optional values.
supersedes: []
evidence:
  - >-
    services-accounting at f47cb263:
    modules/reconciliation/aws/api/matching.routes.ts, payouts.routes.ts;
    services/persistence/payouts.ts:updatePayout; react-console at baf6dae3:
    lib/accounting/reconciliation/store.tsx:syncDraft.
---
# Drafts Change by Versioned Commands; Payout Correction Replaces the Whole Record

## Context

Preparation records distinct financial actions, while payout correction uses replacement semantics.

## Decision

Apply preparation through individual commands and use complete editable payloads for payout replacement.

## Alternatives Considered

Add one atomic whole-draft command. That is an open recommended alternative, not the current implementation.

Treat payout correction as a partial patch. Omitted values would no longer clearly mean clearing optional fields.

## Consequences

Financial changes and notes advance versions; dismissals retain activity without doing so. A console sequence can partially commit and qualifying contributions can disqualify the reviewing approver. Payout replacement supplies required editable values and clears omitted optional values.
