{
  "payment_type": "construction_milestone",
  "ledger_entry_type": "construction_milestone_approve",
  "authorization": "Confirm the completed milestone, customer approval, and collectible amount after retainage before creating its Payment.",
  "amounts": "Positive integer strings in USD cents, resolved server-side from approved records.",
  "identity": "Authenticate the payer and resolve the Ledger and business record server-side.",
  "idempotency": "Persist one stable key and exact payload per operation. Recover existing operations after timeouts.",
  "concurrency": "Serialize collection attempts per approved invoice and cap collection at its outstanding balance.",
  "settlement": "Verify Payment status on the server. Never post native settlement entries manually.",
  "domain_rules": {
    "Retainage": "Exclude retained amounts from this card charge. Track the retained receivable separately until its release is approved.",
    "Change order": "Create an approved invoice revision or separate milestone before collecting an additional charge.",
    "Disputed completion": "Do not charge the disputed portion merely because the project schedule marks the milestone complete."
  }
}
