Apache Fineract SMS, email and push notifications: what it sends and how
A bank or lender that needs Fineract to contact clients and staff has to plan five channels: SMTP email, an SMS message gateway, SMS campaigns with activation and closing, push notifications through Firebase Cloud Messaging (FCM), and report mailing jobs. Each one reaches people differently, and each depends on its own connection settings, message templates and schedules. The integration method, the configuration keys and the message types for each channel must be confirmed in the Apache Fineract 1.15.0 documentation and in the source code of the release you run, because the research behind this page does not describe each channel's settings in enough detail to rely on. Treat any vendor example you find online as a starting point to verify, not as a specification.
Fineract is a headless application with REST APIs and no user interface of its own, so none of these messages are sent by a person clicking in a screen. They are produced by the back end's configuration and by its scheduled jobs, and by whatever integration calls the API. That has two practical consequences. First, your staff need an operating model for who creates campaigns, who approves message content and who watches delivery, and that model has to exist before go-live. Second, failures tend to be silent unless someone checks them, so the reader should ask the team that will run the platform how each job's success or failure is recorded and surfaced. Confirm these points with the project documentation and your own test environment before you size the work.
What Apache Fineract notifications need before configuration
Each notification channel depends on a separate outside party, from an SMTP mail provider to an SMS gateway and Firebase. Confirm these prerequisites in parallel so that configuration in Fineract does not wait on account approvals, sender registrations or network rules.
Supported Fineract 1.x release
Pick a release on the maintained 1.x line and record it, since notification settings and the message job code can change between releases. The current stable release listed on the project site is 1.15.0, but confirm the version your organization will run and the release notes that cover messaging before you write any configuration. Fineract CN is archived and is not a valid base for this work.
PostgreSQL as the database
The README recommends PostgreSQL, and the official Docker image ships only the PostgreSQL JDBC driver. Message queues, scheduled jobs and outbound message records all live in the same database, so its sizing and backups affect notification delivery. Confirm your PostgreSQL version and backup plan before you enable any channel.
SMTP account with approved sending domain
Email reports and notifications need an SMTP account with sending rights, and most providers require the sending domain to be verified with SPF, DKIM and a return address you control. Ask the mail provider for its authentication method, relay host, port and per-day sending limits, and confirm who owns the domain's DNS records. Test with a real mailbox before the first report job is scheduled.
SMS gateway contract and sender ID
SMS messages need a contract with an SMS gateway, and many countries require a registered sender ID or approved message templates before traffic is accepted. Fineract does not ship a single gateway for all markets, so confirm which gateway your staff will configure, its API method and its message length and character rules. Agree on who approves message content and opt-out handling.
Firebase project and FCM credentials
Push notifications through Firebase Cloud Messaging need a Firebase project, a server credential and a mobile app registered to it. Decide who holds the credential, how it is rotated and where it is stored so that it stays out of source control. Confirm with Google's current FCM requirements that the mobile app and the server credential type your team plans to use are still supported.
Egress, TLS and provider requirements
Fineract servers must reach each provider over outbound connections, and those paths must be allowed by firewalls, proxies and any private network design. Use HTTPS only for the Fineract API and confirm TLS versions and certificate chains with each provider. The README warns that production deployments are complex and that the project has no comprehensive production guide, so confirm every provider's requirements directly with that provider.
Configuring Apache Fineract notification channels in order
This sequence takes a Fineract deployment from a confirmed release and instance layout to working email, SMS, push and scheduled report delivery, with a check at each step so problems surface before customers receive anything. It is meant to be followed in the order shown, because later channels depend on the sending infrastructure proven earlier.
Confirm release and instance layout
Before touching any notification setting, record the Fineract version in use and compare it with the 1.15.0 documentation, since configuration keys differ between releases. Identify which instances run the write, batch and read roles, because scheduled report and campaign jobs run on a specific instance type and must be placed deliberately. Confirm the tenant identifier that the notification settings will apply to. Done means you have a written inventory of version, instance roles, tenant and the outbound network paths each instance can reach, and the team has agreed who owns each channel.
Configure the SMTP account and send a test
Create a dedicated sending account on your mail provider or internal relay, then enter the SMTP host, port, transport security and credentials through the environment variables or configuration keys confirmed in the 1.15.0 documentation for your deployment method. Store the password in your secrets manager rather than in plain files. Trigger one test email to an internal mailbox you control. Done means the message arrives with the expected sender, and the mail provider's log shows an accepted delivery for that message ID.
Configure the SMS gateway and test one message
Register with the SMS message gateway your organization uses, then set its endpoint, sender identifier and credentials using the configuration keys confirmed for your release. Send a single message to a test handset that belongs to a staff member who has agreed to receive it. Confirm that the sender identifier is permitted in the destination country and that the gateway's own message status is recorded. Done means the handset receives the text and the gateway log shows the same message reference, with the delivery status captured.
Configure FCM and register a test device
Create a Firebase project for the mobile application, generate server credentials, and load them into Fineract using the push notification settings confirmed in the 1.15.0 documentation. Install the client app on a test device, log in as a test client or staff user, and confirm the device token is stored against that user. Send one push notification from Fineract to that token. Done means the notification appears on the device and the FCM console or delivery record shows a successful send for the token.
Enable SMS campaigns one at a time
Create one SMS campaign that targets a small internal group, with a template reviewed by compliance and legal. Activate it only after confirming the campaign's scheduled trigger and recipient selection with a dry review of the list. Let the first run complete, then check the campaign's message records in Fineract and the gateway log for matching counts. Close the campaign before adding others. Done means the run record shows the expected number of messages sent and failed, and any failure has a recorded reason.
Enable report mailing jobs and verify output
Enable a single report mailing job for a report that has already been validated, addressed to an internal recipient list, and run it manually once before scheduling. Confirm the report content, attachment format and recipient list match the design. Then allow the scheduled run and review the job execution history. Done means the job history shows a completed run, the recipient received the report, and the scheduling settings and owner are documented before any further jobs are enabled.
Choosing the channel for each Fineract message type
Staff email carries report extracts and operational notices to branch and head office users. In a Fineract deployment, report mailing is driven by configured jobs rather than by a user clicking a button, so the message depends on the scheduler and the mail transport being healthy at the scheduled time.
- Recipients: Staff mailboxes or distribution lists named in the report mailing configuration, not client contact records. Confirm which address formats your version accepts.
- Trigger: The scheduled report mailing job at its configured time, or a manual run where your version supports it.
- Back end: A working SMTP account that the Fineract server can reach, a running scheduler and a database that can execute the report queries.
- Data dependency: Staff user records and office assignments, so that each report reaches only the users entitled to see that branch's data.
- Confirm: The TLS and authentication settings your mail provider requires, and whether reports contain client personal data that your policy must govern.
Send a test report to a test mailbox before adding any production distribution list.
Client SMS reaches customers on their mobile numbers, either through individual messages or through campaigns that are activated and later closed. Because the message goes to a person outside your organization, the recipient list and the consent behind it matter as much as the gateway.
- Recipients: Clients with a valid mobile number on their record and, where your policy requires it, a recorded consent or opt-in status.
- Trigger: Campaign activation, a scheduled run that selects eligible clients, or a message raised by an account event. Confirm which of these your version supports.
- Back end: A configured SMS message gateway with its credentials stored in your secrets store, outbound access from the Fineract batch or worker path to the gateway, and a running scheduler.
- Consent and contact data: Opt-out status, number format and country codes. Confirm whether the campaign model enforces opt-out or whether your process must exclude those clients before activation.
- Operations: Who can activate and close campaigns, and how closing a campaign is logged for audit.
Review a sample recipient list against consent records before each campaign is activated.
Push notifications reach a client's mobile app through Firebase Cloud Messaging (FCM). The message depends on the app having registered a device token and on the client having allowed notifications, so the mobile app and its token store are as much a part of the design as Fineract itself.
- Recipients: Client app users who installed your app, signed in and granted notification permission on their device.
- Trigger: Confirm which Fineract events, if any, can produce an FCM message in your version. If none are supplied, the path will need a custom integration.
- Back end: An FCM project with service credentials held in a secrets store, a sender component that can reach Google's FCM service over outbound HTTPS, and a token registration endpoint in your app.
- Consent and contact data: The operating system permission, your privacy notice, and a rule for removing device tokens when a client leaves or the app is uninstalled.
- Operations: Monitoring of delivery failures, since stale tokens accumulate over time.
Ask your implementation partner or the Fineract project to confirm FCM support in the release you plan to run before writing app requirements.
Messages from scheduled jobs are triggered by the system rather than a person. They often depend on batch processing, such as end-of-day account updates, so their timing is tied to how long the batch run takes and whether it completes.
- Recipients: Depends on the job. A reminder about a due payment goes to the client, while an exception report goes to staff. Define the recipient for each job before configuring it.
- Trigger: A scheduled job or the Close of Business batch run. The documentation describes separate read, write and batch instance types, so confirm which instance runs the job.
- Back end: A running batch instance, a write database with Liquibase migrations applied, and a delivery channel (email, SMS or push) configured as above.
- Timing: Close of Business can run for several hours on large deployments, so messages sent after it may be delayed or may depend on its success. Test this with production-scale data.
- Consent and contact data: The same consent and contact rules as the channel used, applied to the job's recipient list.
Confirm the job order and the failure behavior with your operations team before any customer-facing job goes live. The Fineract documentation is the next place to confirm instance settings for your version.
Mapping client contact data to each notification channel
This table maps each client and staff contact field that a notification channel needs to the channel that uses it, with the field owner and the check to run before sending. Confirm every field name against the Fineract API for the release you run, because names and endpoints differ between versions. Treat the validation column as the minimum gate: a message should not leave Fineract for a recipient that fails it.
| Field | Channel | Owner | Validation before sending |
|---|---|---|---|
| Email address | SMTP email and report mailing | Client onboarding team | Syntax check, non-empty, and a bounce or suppression flag reviewed before the next send |
| Mobile number | SMS gateway and SMS campaigns | Client onboarding team, verified by the client | Country code present and format matches what the gateway expects, with opt-out status checked |
| Device token | Push notifications through FCM | Mobile app team, refreshed on each app login | Token present, not expired, and linked to the same client record as the account being notified |
| Preferred language | All channels, for template selection | Client or branch staff, recorded at onboarding | Value matches a template language you have approved and tested |
| Consent flag | SMS campaigns and marketing email | Compliance owner, set from the consent record | Consent is explicitly true for the campaign type and has not been withdrawn |
| Branch or tenant | All channels, for sender identity and routing | Platform team, set by tenant configuration | Request carries the correct tenant header, and the sender and footer match that branch |
| Client status | All channels | Operations, from the client lifecycle | Only active clients receive account messages, and closed or pending clients are excluded |
How Apache Fineract SMS campaigns move from activation to closing
Treat activation as the point where an SMS campaign stops being a draft and starts committing messages to a queue, because the messages that follow are generated and sent by scheduled work, not by the person who clicked the button. Before go-live, confirm in the documentation for your deployed release (see the Apache Fineract platform documentation) which states a campaign passes through, whether an approval step sits in front of activation, which role may perform each action, and whether recipients are resolved when the campaign is saved, when it is activated, or each time the sending job runs. Those answers decide who can change the list after sign-off and how many client records a single action can touch. Write them into your runbook as observed behavior in your environment, not as assumptions carried over from another release.
A large client list turns activation into a load and cost event. Once messages are queued, the sending job hands them to your SMS gateway at whatever rate the job and the gateway allow, and the gateway usually bills per message, so a mistaken audience becomes an expensive mistake within minutes. Ask the gateway provider for its throughput limits, sender ID rules and opt-out handling, and confirm which of these Fineract enforces and which the provider enforces. Check consent for each recipient group against your own policy before the list is frozen. Plan the send window so that staff can watch queue depth and error counts during the first batch, and agree in advance who can pause or close the campaign.
Closing a campaign should stop new messages from being queued or sent, but it does not reliably retract messages already handed to a carrier. Confirm in the documentation for your release whether closing also cancels messages still waiting in Fineract's queue, what happens to messages mid-send, and whether any action can recall a message after delivery. Assume that delivered messages cannot be recalled unless your gateway offers that feature and you have tested it. Before any production activation, run a test campaign against an internal list of staff numbers, check rendered message text and sender ID, close it deliberately, and record what was queued, sent and still pending. Require sign-off from the business owner, the compliance lead and the platform owner on that record before the production list is loaded.
Securing SMTP, SMS and FCM credentials in Apache Fineract
Notifications from Fineract depend on credentials for an email server, an SMS gateway and Firebase Cloud Messaging, and each one can send messages in your organization's name. The controls below cover where those credentials live, how far they reach, which traffic they can use and what gets written to logs. Review them together, because a weak control in one channel exposes the others.
Keep provider credentials out of config files
Store the SMTP password, SMS gateway API key and FCM service account key in a secrets manager and inject them into the Fineract runtime at start, rather than writing them into property files or container images. Check that configuration files, Helm values, CI variables and deployment manifests contain only references to secret names. Confirm who can read each secret and who can rotate it, and record the rotation procedure for each provider.
Scope each account to one sender
Create a dedicated mailbox, SMS sender and Firebase project or service account for Fineract notifications, and do not reuse an account that staff use for other purposes. Limit each account to sending, not reading or administering. If a provider supports sender IDs, short codes or verified domains, restrict them to the names customers already recognize. Separate test and production accounts so a test run cannot reach real clients.
Restrict outbound traffic to provider endpoints
Allow the Fineract server to reach only the SMTP host, the SMS gateway endpoint and the FCM endpoints it needs, through an egress proxy or firewall rules in your network. Block general internet access from the application tier so that a compromised process cannot send data to an arbitrary host. Confirm the exact hostnames and ports with each provider, because they can change and a blocked endpoint fails silently in the notification queue.
Encrypt SMTP and gateway traffic
Require TLS for SMTP connections and verify the mail server certificate rather than accepting any certificate. Call the SMS gateway and any other provider API over HTTPS only. The Fineract documentation strongly encourages HTTPS only and documents SSL settings through environment variables such as FINERACT_SERVER_SSL_ENABLED, which covers inbound API traffic. Confirm separately how each outbound client validates certificates, because the inbound setting does not configure those connections.
Replace the default development login
The Fineract README shows a default development login, mifos with a password that is publicly documented, and it must be changed before any real deployment. Remove or disable the default account, create named operator accounts, and confirm that OAuth2 or another approved identity provider governs access to notification settings and manual send features. Test that the old credentials no longer work in every environment, including staging copies restored from production.
Log sends without message content
Record the time, recipient reference, channel, template identifier, provider response and job outcome for every message, but do not store message bodies that contain personal or financial data such as account balances, loan amounts or identity numbers. Store recipient references as internal client identifiers where possible. Set a retention period for these logs with your compliance team, and confirm that support staff can trace a failed delivery without seeing the full message.
Why Apache Fineract notifications fail and how to fix them
This table lists the failures most often reported for Fineract email, SMS, push and report mailing, with the symptom, the likely cause and the first fix to try. Read each row as a checklist, and confirm every cause against the logs of your deployed release before you change settings. The main takeaway is that most notification failures trace to credentials, sender identity, or which instance and job window runs the send.
| Failure | Symptom | Likely cause | Fix |
|---|---|---|---|
| SMTP authentication or relay rejection | Email sends fail with authentication or relay errors in the Fineract logs | Wrong SMTP credentials, or the relay does not accept the sending host or account | Confirm the relay's allowed senders and auth mode, correct the SMTP settings, then send one test message |
| Sender domain not authorized | Recipients receive nothing, or messages land in spam with authentication failures | SPF, DKIM or DMARC records do not cover the sending service or From domain | Fix SPF and DKIM for the sending domain, then check the authentication results on a received message |
| SMS sender ID or number format rejected | The gateway returns a rejection for the sender ID or specific recipient numbers | Sender ID not registered with the provider, or phone numbers lack the expected country format | Confirm the registered sender ID with the gateway and normalize recipient numbers to the format it documents |
| FCM credentials or device tokens invalid | Push sends fail for every device, or only for some devices | Service credentials are wrong or were rotated, or stored device tokens are stale | Check the FCM credential configuration in your release, then remove or refresh tokens FCM reports as invalid |
| Campaign run from a non-write instance or during batch | Campaign activation or closing runs late, is skipped, or appears to run twice | The scheduled job ran on an instance type not set up for it, or overlapped with Close of Business | Confirm which instance type runs campaign jobs in your release, and schedule campaigns outside the COB window |
| Report mailing jobs stop after upgrade or instance change | Scheduled report emails no longer arrive after the change | Scheduler settings, job state or instance type changed during the upgrade or move | Compare the job list and schedules with a pre-change export, confirm the instance type, then run one job manually |
What buyers ask about Apache Fineract notification services
What drives the cost of setting up notifications for Fineract?
The cost follows the amount of messaging work, not the Fineract software itself, which is licensed under Apache-2.0. The main drivers are the number of channels (email, SMS, push), the number of message templates, the number of SMS campaigns with activation and closing rules, and the review cycle for message content. Each provider relationship adds setup and testing work, and each template needs review by the people who own the wording and the compliance rules for it. Provider contracts and usage fees are paid to the provider directly, and they recur. Ask any partner for a quote that lists each channel, each template group, each campaign and each provider account separately, so you can see which items are one-time and which recur.
How long does a Fineract notification integration usually take?
Duration depends on how many channels and providers are involved, how many templates and campaigns need to be built, and how quickly the client can supply accounts, approvals and test results. An email-only setup with one SMTP account is shorter than a project that adds an SMS gateway, scheduled campaigns and push notifications through FCM. Waiting time for sender registration and provider approvals is often outside the implementation team's control, so it should be shown as a separate dependency in the plan. DeployOpen agrees timelines in writing as part of a fixed-scope engagement, after the channels and templates are confirmed. Ask for the schedule to name each dependency and who owns it.
What must our team provide before notification work can start?
Your team needs to provide the accounts and access the work depends on, and the decisions only your organization can make. In practice that means:
- Provider accounts for SMTP email, the SMS message gateway and FCM, with credentials handled through your secrets process.
- Sender approvals, such as registered sender IDs or verified sending domains, which the providers or your regulators may require.
- Contact data that is current, with consent status and correct phone numbers and email addresses.
- Test devices and test mailboxes for each channel, including iOS and Android devices for push.
Missing any of these will hold up testing, so confirm them in the scope document before work begins.
Can our own staff set up Fineract notifications without an outside partner?
Yes, if your team has engineers who know Fineract's configuration, the chosen messaging providers and your data protection rules. Many organizations keep ownership of provider accounts and content approval internally, and use an implementation partner for configuration, testing and documentation. The Fineract README notes that a production deployment can be complex and time-consuming, and that organizations may pay a vendor for deployment and maintenance, so it is worth assessing your team's capacity honestly. Ask internally whether anyone can own the templates, the campaign rules and the monitoring of delivery failures after go-live, since those tasks recur.
Does DeployOpen publish prices for notification services in advance?
No. DeployOpen does not publish a price list. A quote follows from a written scope that lists the channels, providers, templates, campaigns, test coverage and content review you need. Most engagements are fixed-scope, so scope, deliverables and timelines are agreed in writing before work starts. If you later want ongoing support, upgrades or continuous testing for the messaging setup, those are available as retainers and are quoted separately. When you request a quote, ask for each item to be priced on its own line so you can compare it with your internal estimate.
What testing and compliance review applies to message content?
Message content should be tested for delivery, personalization and opt-out handling, and reviewed by the people responsible for the wording and the regulatory obligations that apply to your customers. Testing covers each template with real test recipients, each SMS campaign's activation and closing behavior, and each push notification on target devices. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports or certifications, so independent auditors and certification bodies remain responsible for assessment. Ask your compliance lead to confirm which records of consent, content approval and delivery logs they need to retain.
What goes wrong most often with Fineract SMS and email delivery?
The most frequent problems are unverified sender identities, bounced or undeliverable addresses, missing consent records and campaigns that send at the wrong time or to the wrong audience. Credentials left at the development defaults, or stored in configuration files, create a security risk, so provider secrets should be kept out of source control. Teams also underestimate the work of monitoring delivery failures after go-live. Confirm how your provider reports failures, who receives those reports, and how a failed batch is retried or reviewed before you go live.
How DeployOpen delivers Apache Fineract notification integrations
DeployOpen plans, builds, documents and supports Apache Fineract notification integrations inside your own infrastructure, whether that is your cloud accounts, data centers or air-gapped network. Each engagement starts from a written scope covering the email, SMS and push channels you need, and the work is handed over with the configuration and runbooks your team needs to operate it.
How we scope
- We confirm which messages Fineract must send, which channels carry them, and which staff and customer events trigger them.
- We document the SMTP account, SMS gateway and FCM project choices, including who owns each credential and where it is stored.
- Engagements are fixed-scope, so deliverables, timelines and responsibilities are agreed in writing before any build work begins.
How we build
- We configure the Fineract email settings, SMS gateway connection and push notification path in the environments you control.
- We set up SMS campaigns with the activation and closing steps your operations team will use, and test each before go-live.
- We test report mailing jobs and message delivery paths with sample data, and record the results against the agreed scope.
How we hand over
- We deliver configuration records, credential ownership notes, and a runbook covering each channel and its failure checks.
- We walk your operations and engineering staff through campaign activation, closing, job scheduling and log review.
- We document known limits of each channel, such as provider throttling or device token handling, so owners can plan around them.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- Retainers can cover changes to templates, provider switches, credential rotation and Fineract version upgrades affecting messaging.
- We recommend confirming support terms, response expectations and included testing in the written agreement before work starts.

