Full update of an existing rule. Same body and same validation as create — this is an update, despite the POST verb.
The request replaces the rule's editable fields wholesale; it is not a partial patch. Send the complete object, including values you are not changing. The edit form in HQ pre-populates every field from the GET response precisely so that saving an untouched rule round-trips without validation errors (NB-3604).
isActive is not part of this body. Enabling and disabling goes through the toggle endpoint. The 100% cap is re-evaluated against the account's other active rules with this rule's new percentage substituted in — lowering one rule's share in the same call that raises another's requires two calls, and the intermediate state must itself be valid.
Changing transferType on an existing rule is treated as a normal edit: the conditional field requirements of the new type apply, and fields belonging to the old type should be sent as null. For an ACH rule whose banking details change, note that a previously registered ExternalFinancialAccountId refers to the old destination — confirm with backend before repointing an ACH rule that has already executed.
