QuickBooks Online calculates invoice `Balance` from transaction business logic and treats the field as read-only; a supplied value is overwritten. Change editable invoice inputs that determine the amount due, such as the applicable line items, rather than trying to set `Balance` directly.

After the update, read the invoice again and check the returned `Balance`. It can also reflect payments against the transaction, so compare the returned invoice and related payment state before diagnosing a failed update.