For an on-demand invoice that has not been sent for payment processing (status is unpaid), all the values in the body parameters can be updated.
For invoice with status past_due, only the following values can be changed: payment method token, next scheduled payment date, and description. You can also apply a discount on an invoice item. Take note that the invoice amount cannot be updated to have a reduction of the initial invoice amount. This will need to be actioned via a "discount". The "invoiceItemId" need to be provided in the request body if the integrator choose to provide a discount to a specific item in the invoice.