Our payment reconciliation process is broken due to 500 Internal Server Error responses when updating treasury payment status via the REST API. Multiple payments are stuck in pending status because the API calls fail. The error occurs when we try to mark payments as cleared or reconciled after receiving bank confirmations. What’s strange is that the same status updates work perfectly through the UI with no errors. The API just returns a generic 500 error with no detailed error message in the response body. This is causing significant delays in our payment reconciliation workflow. We’re on ICS 2022. Anyone experienced similar issues with treasury payment APIs?
Treasury payment status updates in ICS 2022 require additional fields that aren’t obvious from the API docs. When marking a payment as cleared or reconciled, you need to provide the reconciliation date, bank reference number, and sometimes the actual settlement amount if it differs from the payment amount. The UI auto-fills these fields with defaults, but the API requires them explicitly. Missing these fields can cause database constraint violations that manifest as 500 errors.
500 errors indicate a server-side problem. Check the CloudSuite system logs for detailed error traces. The generic response suggests an unhandled exception in the payment processing logic.
We encountered similar 500 errors with treasury APIs. The issue was related to payment batch processing. If a payment is part of a batch, you can’t update individual payment status via the API - you have to update the entire batch status. Check if your stuck payments are part of payment batches and try updating at the batch level instead.
Check if your payments have pending approval workflows. If a payment is in an approval state, the API might not allow status updates until the workflow completes. The UI shows this clearly, but the API just fails with 500. Also verify that your API user has treasury reconciliation permissions, not just payment view permissions.