Presumably the ATM connector will be an incoming connector, so the stellar-connector is probably of more use
https://github.com/openMF/stellar-connector (incoming and outgoing)
https://github.com/mgeiss/mifos-twilio-bridge (outgoing)
jPOS documentation: http://jpos.org/doc/proguide-draft.pdf (Keep in mind that jPOS is GPL – you'll need to open source your connector, and you'll need to do so as GPL)
MifosX API docs: https://demo.openmf.org/api-docs/apiLive.htm
Inquiries (synchronous)
→ return balance
Authorize (synchronous)
→ if authorization is provided, book money into an auxiliary account. To provide authorization examine customer's main account minus this auxiliary account.
Deposit (asynchronous?)
Settle (asynchronous?)
→ Book balance out of auxiliary account and the customer's main account.
Installation:
→ Start and configure service
→ Create an ATM bridge for a tenant
Create a REST service using spring
Save any residual data in a database
Create a REST controller which accepts the calls to create a bridge for a tenant.
If necessary create an intermediate data store so that asynchronous requests can be retried.
Use retrofit to call MifosX interface to perform the bookings.
jPOS listener saves transaction to transaction DB
creates event using ApplicationEventPublisher
event listener reads from transaction DB, increments try count
creates journal entries to settle accounts.
regularly check for unprocessed events in order to retry