Edit Existing Payment

This request allows you to update existing payments.


Payments have a wide array of settings and store a lot of information. Here is what you need to know about updating payments:

  • When a payment is edited, an entirely new payment record that references the original payment is created. The new payment record becomes active, while the original payment is set to an inactive status and becomes uneditable in the future. Thus, a payment ID can only be updated once, since it's replaced by a new payment.
  • There are a lot of body parameters that can be used, but not all will apply to every payment.
  • The comments field is always required when updating payments. This field helps you keep a history of what changes to payments have been made and why.

For more information, see our API - Updating Payments article on our help site.

And for an example of how updating payments works within the UI, take a look at our


For information on Payments database tables, see the following articles:

    "Payments": {
        "results": [
                "id": 1616,
                "displayId": 7239,
                "payoffFlag": 0,
                "info": "ReadMe API Test",
                "date": "2022-01-01",
                "priorcutoff": false,
                "amount": "150",
                "paymentMethodId": 1,
                "paymentTypeId": 1,
                "extra": "payment.extra.periods.principalonly",
                "active": 1,
                "afterAmountPastDue": "0.00",
                "afterDaysPastDue": 0,
                "afterNextDueAmount": "172.22",
                "afterNextDueDate": "/Date(1642896000)/",
                "afterPayoff": "11721.41",
                "afterPrincipalBalance": "11800.92",
                "beforeAmountPastDue": "0.00",
                "beforeDaysPastDue": 0,
                "beforeNextDueAmount": "173.22",
                "beforeNextDueDate": "/Date(1642896000)/",
                "beforePayoff": "11722.41",
                "beforePrincipalBalance": "11800.92",
                "early": 0,
                "echeckAuthType": "payment.echeckauth.WEB",
                "sortDate": 197001191,
                "chargeOffRecovery": 0,
                "autopayId": "N/A",
                "CustomFieldValues": {
                    "results": []
                "order": 4,
                "_notEditable": false,
                "_$originalDate": "/Date(1640995200)/",
                "payoffPayment": false,
                "quickPay": "",
                "comments": "TEST",
                "selectedProcessor": "",
                "__logOnly": true,
                "__id": 1616,
                "__update": true


Try It Instructions

Our requests often provide sample payload information so that you can receive a 200 response from simply hitting the Try It button. This request is a bit different. As we explained above, updating a payment creates a new payment record and sets the original to an inactive status. Thus, a payment ID can only be updated once, since it's set to inactive and replaced by a new payment.

We can't provide sample ID values that will work for multiple users. But, if you'd like to see a sample of a 200 response, click the response examples located under the Try It button.

To receive a 200 response from the Try It button, you will have to try this request with your own tenant credentials. If you plan on doing so, make sure to change the headers to match your own authentication information.

Click Try It! to start a request and see the response here!