BACKGROUND: We currently have a feature we developed using a homegrown integration application with IFS to achieve online bill pay functionality on our external website. It is fairly straight forward and has 2 endpoints. 1 endpoint to retrieve a list of invoices a customer needs to pay and 1 endpoint to pay those invoices. We are utilizing IFS’s oracle APIs currently so when a customer pays the invoice, this single endpoint call is actually:
- Generating a statement number
- Creating a mixed payment lump sum record
- Creating the mixed payment ledger transaction record
- We then attempt to charge the customer’s credit card, and upon success of that.. we then approve the mixed payment.
Since this is all captured within a transaction, if any stage of these steps fail, we can safely rollback the changes we made in IFS and we can cancel the credit card transaction if we need to.
GOAL: Our goal would be to shift this functionality over to using IFS’s REST APIs. We have never used IFS REST APIs to this point, so I’m looking for advice here. If we wanted to achieve the same functionality from a single “Pay Invoice” type of a call using IFS REST API capabilities, what would be the recommended approach to do that?
Here are the options I that see:
- Create a custom projection, that can take the input we need for this functionality and create an IFS Workflow to follow all these steps.
- Utilize the existing create mixed payment REST API endpoint, and create a workflow based on the changed mixed payment record creation that will follow all these steps.
- Have 4 separate calls doing these 4 steps leveraging existing REST APIs, and requiring the calling application to handle the failures/rollbacks.
Any best practices advice here is welcomed and appreciated.