Third Party Integrations

Overview

RentOne integrates with several third-party platforms for payments, notifications, messaging, maps, and operational monitoring.


MSG91 Integration

Overview

RentOne uses MSG91 Flow API for OTP delivery and transactional SMS notifications.

The integration is implemented in the Shared Utility Library and can be reused across all backend microservices.


Service URL

https://control.msg91.com/api/v5/flow

Authentication

MSG91 requests are authenticated using an Auth Key.

Example:

authkey: <MSG91_AUTH_KEY>

Request Structure

The platform sends SMS using MSG91 Flow Templates.

Example Payload:

{
  "template_id": "<template-id>",
  "short_url": "0",
  "recipients": [
    {
      "mobiles": "919999999999",
      "OTP": "123456"
    }
  ]
}

Implementation

Utility Class:

Msg91Utils

Method:

sendSms(String templateId, List<Map<String, String>> recipients)

Responsibilities:

  • Build MSG91 payload
  • Authenticate request
  • Invoke Flow API
  • Return API response
  • Handle integration exceptions

Features

  • OTP Delivery
  • Transactional SMS
  • Dynamic Template Variables
  • DLT Compliant Messaging
  • Template-Based Notifications

Example Use Cases

User Login OTP

Template Variables:

{
  "mobiles": "919999999999",
  "OTP": "123456"
}

Configuration

Current Configuration:

private static final String URL = "https://control.msg91.com/api/v5/flow";

private static final String AUTH_KEY = "<MSG91_AUTH_KEY>";

DLT Requirements

The following must be configured in MSG91:

  • Approved Entity ID
  • Approved Sender ID
  • Approved Templates
  • Active PE-TM Chain

Used By

rentone-users

Primary Usage:

  • User Authentication
  • OTP Verification
  • Account Access Validation

Firebase Cloud Messaging (FCM)

Purpose

Firebase Cloud Messaging is used for:

  • Push Notifications
  • Device Token Management
  • Mobile App Notifications

Configuration

firebase-service-account.json

Features

  • Android Push Notifications
  • Device Registration
  • Notification Broadcasting
  • Notification History

Used By

notifications

Google Maps Platform

Purpose

Google Maps Platform is used for:

  • Places Search
  • Address Autocomplete
  • Geocoding
  • Reverse Geocoding
  • Directions and Route Calculation
  • Delivery Zone Management

Configuration

google:
  api-key: <GOOGLE_PLACES_API_KEY>
  geocode-api-key: <GOOGLE_GEOCODE_API_KEY>

  autocomplete-url: https://maps.googleapis.com/maps/api/place/autocomplete/json
  place-details-url: https://maps.googleapis.com/maps/api/place/details/json
  geocode-url: https://maps.googleapis.com/maps/api/geocode/json
  directions-url: https://maps.googleapis.com/maps/api/directions/json

APIs Used

API Purpose
Places API Address Search
Place Details API Address Details
Geocoding API Address → Coordinates
Reverse Geocoding API Coordinates → Address
Directions API Route Calculation

Features

  • Address Validation
  • Delivery Address Selection
  • Delivery Zone Verification
  • Route Planning

Used By

rentone-cloud-app

Razorpay

Purpose

Razorpay is used for online payment processing.

Configuration

RAZORPAY_KEY_ID=<RAZORPAY_KEY_ID>
RAZORPAY_KEY_SECRET=<RAZORPAY_KEY_SECRET>
RAZORPAY_WEBHOOK_SECRET=<RAZORPAY_WEBHOOK_SECRET>

Features

  • Payment Initiation
  • Payment Verification
  • Webhook Processing
  • Payment Status Tracking

Deployment Note

Razorpay credentials are injected through:

/etc/systemd/system/backend-rentone-payment-gateway.service

and are not stored in source code.

Used By

payment-gateway

Slack

Purpose

Slack is used for operational monitoring and automated error reporting.

Features

  • Exception Notifications
  • Production Error Alerts
  • Operational Monitoring

Used By

notifications

Nginx

Purpose

Acts as the public entry point for all RentOne services.

Responsibilities

  • SSL Termination
  • Reverse Proxy
  • Static Asset Hosting
  • CDN Routing
  • Frontend Hosting

Domains

https://rentone.co.in
https://console.admin.rentone.co.in
https://cloud.rentone.co.in
https://cdn.rentone.co.in
https://jenkins.rentone.co.in

Jenkins

Purpose

Continuous Integration and Deployment.

Features

  • Automated Builds
  • Automated Deployment
  • Application Backup Before Deployment
  • Rollback Support

Deployment Flow

GitHub
   ↓
Jenkins
   ↓
Maven Build
   ↓
Backup Existing JAR
   ↓
Deploy New JAR
   ↓
Restart Service

MongoDB

Purpose

Primary application database.

Version

MongoDB 7.0.31

Features

  • Multi-Tenant Data Storage
  • Dynamic Tenant Database Resolution
  • Transactional Data Storage

Used By

All Backend Services

Redis

Purpose

Caching and Gateway Rate Limiting.

Features

  • API Rate Limiting
  • Temporary Caching

Used By

api-gateway

Configuration

spring.data.redis.host=localhost
spring.data.redis.port=6379