{
  "payment_type": "placement_invoice",
  "ledger_entry_type": "placement_invoice_approve",
  "authorization": "Confirm the contractual fee trigger, employer, placement identifier, and approved amount before issuing the invoice.",
  "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": {
    "Start-date change": "Verify that the fee trigger still applies before collecting payment.",
    "Placement guarantee": "Track guarantee terms and later adjustments in the recruitment system; settlement does not resolve them.",
    "Candidate privacy": "Use an opaque placement identifier in Payment parameters instead of candidate documents or personal details."
  }
}
