DIGIT Works
PlatformDomainsAcademyDesign SystemFeedback
Works v1.1
Works v1.1
  • Introducing Works
    • What's New
  • Design Approach
    • Approach
    • Solution Design
  • Specifications
    • Functional Specifications
      • Project
      • Estimates
      • Organisation
      • Attendance Management
      • Measurements
      • Muster Roll
      • Expenditure / Billing
      • Contracts
    • Release Notes
      • MDMS & Configuration Updates
      • Test cases
      • Data Migration
      • Service Build Updates
  • Reference Implementations
    • MUKTASoft v2.1
    • MUKTASoft v2.2
      • Specifications
        • Roadmap
        • User Persona
        • Functional Requirements
          • Product Requirements Document v2.0
          • Product Requirements Document v2.1
            • Employee Mobile Application
            • Aadhaar Integration
            • Estimate Templates
            • SOR Rate Analysis
          • User Stories
            • Time Extension
              • CBO: Create Time Extension
              • Time Extension Workflow
              • EMP: Create Time Extension
              • Search and View Time Extension
              • CBO: My Requests
              • CBO: Edit Time Extension
            • JIT-FS Integration
              • Fund Allocation Register
              • Create Payment Instruction
              • PIS: Payment Instruction Status
              • PAG: Payment Advice Status
              • PD: Update payment details
              • FD: Update Failed Payments
              • Create Revised Payment Instruction
              • Revised PI: Update payment details
              • Revised PI: Updated Failed Payments
              • Search Payment Instruction
              • View Payment Instruction
            • Work Order
              • Create Work Order
              • Work Order Workflow
              • Work Order Inbox Page
              • Create/ Submit Work Order
              • Edit/Submit Work Order
              • Verify & Forward
              • Send Back
              • Send Back To Originator
              • Reject Work Order
              • Approve
              • Search Work Order
              • Work Order PDF
            • Dashboard v1.0
              • Commons
              • KPIs: Actions Items
              • KPIs: SLA Breached
              • KPIs: Leaderboard
              • KPIs: Activities by Status
              • KPIs: Payments
              • KPIs: Expenditure
            • Schedule of rates
              • Create SOR
              • Search SOR
              • View SOR
              • Modify SOR
              • Add/ Modify Rate
            • Detailed Estimate
              • Create Detailed Estimate
              • Change in workflow
              • Change in edit estimate
              • Search and View Detailed Estimate
            • Detailed MB
              • Create MB
              • MB Inbox
              • MB Workflow
              • Search MB
              • View MB
              • Edit MB
            • Employee Mobile Application
              • Employee Login
              • Home Page
              • Work Orders
              • Create/ Edit MB
              • Measurement Books
              • View Measurement Book
            • Aadhar Integration
              • Wage Seeker's Registration
              • Wage Seeker Modification
            • Improvements
              • Moving Skills to SOR Master
              • Re-payment of failed payment
              • Revising estimate calculation logic
              • Material purchase payment to CBO
            • Estimate Template
              • Create Template
              • Search Template
              • View Template
              • Modify Template
              • Change in estimate to add template
            • Rate Analysis
              • Add/ Edit Rate Analysis
              • View Rate Analysis
              • Revising Rate
              • Analysis Statements
              • Utilization Statements
              • Download of analysis statements
            • Data Protection & Privacy
              • Display Privacy Notice In Login
              • Display Bank Account Details On Wage Bill
              • Display Muster Roll Details
              • View Payment Instruction - Mask Account Number & IFSC
              • View /Edit Wage Seeker Details
              • View/Edit Organisation Details
              • Display Engaged Wage Seeker Details
              • Display Organisation Profile & Bank Details
              • Track Attendance Changes
              • View Muster Rolls
              • Search Wage Seeker
              • Remove PII & Sensitive Data From Additional Fields
      • Deployment
        • Release Notes
          • Service Build Updates
          • Data Migration
          • Test Cases
        • Deployment Guide
        • SMS Adapter Services
          • Notification Consumer
          • Notification Consumer Service
          • Contact Notification Service
          • Estimate Notification
          • Expense Notification Service
          • Muster Roll Notification Service
          • Measurement Notification Service
          • Organisation Notification Service
          • Individual Notification Service
        • MUKTASoft Services
          • IFMS Adapter
          • Expense Calculator
          • Works PDF
          • MUKTA Services
          • Bank Account Search
          • Individual Search
          • Organisation Search
          • Bill Scheduler
          • Statements
          • Rate Analysis
        • Configuration
          • Master Data Templates
            • Project Type
            • Target Demography
            • Unit Of Measurement (Units)
            • Overheads
            • Skill Category & Skills
            • Community-Based Organisation Roles
            • Scheme
            • Expense Heads
            • Standard Deductions
            • Organisation Type
            • Organisation Sub Type
            • Organisation Functional Category
            • Organisation Class/Rank
            • HRMS Sections/Departments
            • HRMS Designation
            • HRMS Employment Type
            • User Role
            • Organization
            • Wage Seeker
            • Tenants
            • Ward Boundary
            • Locality Boundary
            • Payment Advice Format
            • Users Data
            • Schedule of rates
            • Rate Analysis
          • Notifications & SMS Templates
          • Localisation
          • Dashboard Reindexing
          • Platform Service Configuration
          • UI Configuration
            • Common Configurations
              • Role Configuration
              • MDMS Configuration
              • APK Generation
            • Modules
              • Project
              • Estimate
              • Workorder
                • Time Extension
              • Muster Roll
              • Bill
              • Organization
              • Wage Seeker
              • Wage Seeker (CBO Application)
              • Attendance (CBO Application)
              • Muster Roll (CBO Application)
              • Mukta Dashboard
              • Measurement
              • SORs and Rates
              • IFMS Adapter UI
              • Rate Analysis
              • Revision Of Rates
              • Estimate Template
              • Measurement Book (Mobile Application)
        • Customisation
          • Works UI
            • UI Tech Flow Diagrams
          • UI Screens Customisation
            • Document Upload Container
            • CSS Customisation
            • Inbox/Search Screen
      • Implementation
        • Pilot Roll Out Plan
        • Pilot Go Live Definition
        • Pilot Sucess Metrics
        • Success Metrics
        • Adoption Metrics
        • Adoption Template
        • Implementation Plan & Checklist
        • Issue Management - Standard Operating Procedures
        • Training Resources
          • User Manual
            • Mobile Application User Manual
              • CBO - Getting Started
                • My Works
                • Track Attendance
                • Muster Rolls
                • My Bills
                • My Requests
              • Employee - Getting Started
                • Work Orders
                • Measurement Books
            • Web Application User Manual
              • Getting Started
              • Project
              • Estimate
              • Work Order
              • Time Extension
              • Measurement Book
              • Muster Roll
              • Billing
              • Payments
              • Rates Revision
              • Registries
                • Wage Seekers
                • Organizations
                • Schedule Of Rates
                  • SOR Definition
                  • Rates
                  • Rate Analysis
                • Estimate Template
            • Kibana Dashboard User Manual
          • Training Videos
        • UAT Planning
          • UAT Test Case Scenarios
          • UAT Schedule Plan
          • Issue Reporting Template
          • UAT Credentials
  • Platform
    • Architecture
      • High Level Design
      • Low Level Design
        • Registries
          • Individual
          • Bank Account
          • Organization
        • Services
          • Project
          • Detailed Estimates
          • Contracts
          • Attendance
          • Muster Roll
          • Expense
          • Schedule of Rates (archive)
          • Detailed Measurement Book
  • Setup
    • Install Works
      • Install Using GitHub Actions In AWS
      • System Data Setup
    • Configure Works
      • Service Configuration
        • Project
        • Estimate
        • Contract
        • Attendance
        • Muster Roll
        • Expense
        • Bank accounts
        • Organisation
        • Individual
        • Estimate Template
  • General
    • Source Code
    • Roadmap
    • Discussion Board
    • Issues
Powered by GitBook

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

On this page
  • Overview
  • Components
  • Master Data
  • Sequence Diagram
  • API Specifications
  • DB Diagram
  • IFMS Adapter Description
  • Dependent Services
  • Key Functionality
  • JIT Connection Flow
  • Cronjobs
  • Indexes

Was this helpful?

  1. Reference Implementations
  2. MUKTASoft v2.2
  3. Deployment
  4. MUKTASoft Services

IFMS Adapter

This page describes the integration with the Integrated Financial Management System of Odisha state

PreviousMUKTASoft ServicesNextExpense Calculator

Was this helpful?

Overview

Integration with Odisha IFMS (Integrated Financial Management System) is via the Just-in-Time (JIT) APIs provided by the Odisha treasury.

Components

Master Data

The following pieces of information are shared offline:

  • clientId

  • clientSecret

  • publicKey from JIT systems

  • Head of accounts to be used for the Mukta scheme at the state level - to be provided by HUDD

  • Spending unit details specific to each ULB are to be provided by HUDD.

Sequence Diagram

Success Flow

API Specifications

DB Diagram

The IFMS Adapter does not use the persister service. The adapter interacts directly with the DB and has sync blocks on certain transactions to preserve data integrity.

IFMS Adapter Description

Dependent Services

  • expense service

  • expense-calculator service

  • bank-account service

  • individual service

  • organisation service

  • audit-log service

  • IDGen service

  • MDMS service

  • encryption service

Key Functionality

Funds Summary

  1. IFMS adapter manages funds summary based on the head of accounts and SSU codes. It creates sanctions for each head of accounts and SSU details based on ULB tenant ID.

  2. There are three types of transactions that can be received from the JIT VA API -

    • Initial Allotment - A new sanction will be created only if AllotmentTxnType is Initial Allotment.

    • Additional allotment - For this type of transaction it will update the amount of existing sanction.

    • Allotment withdrawal - It deducts the transaction amount from the sanction for this type of transaction.

Payment Instructions

  • When a bill is approved this service creates payment using the expense service.

  • There are consumers who keep listening to the payment create Kafka topic and generate payment instructions (PI) using payment and bill details and post the PI to the IFMS system using JIT API.

  • A new PI will be generated when enough funds are available for any head of accounts for that tenantId.

  • Before posting the PI there were multiple enrichments like bankaccount details, org and individual details, etc.

  • After creating the PI it deducts the available balance from the funds summary.

  • If a PI is created for any payment then the user can not generate a PI again till the PI fails.

  • It keeps a log of each status call of PI and saves it in the DB

JIT Connection Flow

IFMS adapter connects JIT with two APIs -

  • authentication - webservices/jitfs/v1.0/authenticate

  • service request - webservices/jitfs/v1.0/get-jit-service-data

Cronjobs

There are multiple cronjobs for the IFMS adapter, all jobs are built using a single codebase with multiple charts, these charts are required to configure cronjobs with multiple configurations.

All cronjobs uses ifms/scheduler?serviceId={SERVICE_ID} API, the business logic is defined for each service code.

Service codes are -

Cronjob
Service ID
Description

ifms-cronjob-pa

PA

It is used to create payment for approved bills, uses expense service API

ifms-cronjob-va

VA

It fetches the allotment details using JIT API's.

ifms-cronjob-pis

PIS

After PI creation it fetches whether the payment instruction's sanction is generated or not.

ifms-cronjob-pag

PAG

After receiving the PIS response it fetches for payment advice generation using JIT API.

ifms-cronjob-pd

PD

After receiving the PAG response it keeps fetching data for the PD service JIT API. The response will be received when payment is processed.

ifms-cronjob-fd

FD

It uses JITs bulk failure API and returns failed payments of the last 72hrs.

ifms-cronjob-ftps

FTPS

This same as PD - it is used for the revised transaction.

ifms-cronjob-ftfps

FTFPS

After receiving the response from FTPS API it keeps fetching data of failedrequests transactions of revised transactions.

Indexes

All requests and responses are logged in an encrypted fashion in two indexes in ES.

  • ifms-request-logs

  • ifms-error-logs

Request logs

Use this index to see a history of all successful requests to JIT.

Each request that is sent to JIT will be logged in the ifms-request-logs index. The index name is configurable in application.properties, Helm chart and environment file. There are multiple fields for the request:

  • id - uuid of the request

  • serviceId - Contains service ID of jit request like VA, PI, PIS etc

  • jitBillNo - Contains bill number for which it’s calling the JIT API, it’s applicable for PI, PIS, PAG, PD, FTPS, and FTFPS. Note: For Auth request jitBillNo will be AUTH

  • encRequest - Contains request body which is encrypted using ifms.request.enc.secret value. You can decrypt this using the same secret.

  • decryptionRek - Contains decryption rek which helps to decrypt the JIT response received from JIT.

  • encResponse - Response received from JIT.

  • createdtime - The time when the request was sent to the JIT system

Error logs

Use this index to see all failing requests to and back from the JIT IFMS APIs.

When the user sends any request to JIT and gets an error response, then it will store the details in ifms-error-logs index. It has multiple fields

  • serviceId - Contains service ID of jit request like VA, PI, PIS etc

  • requestId - This is uuid of ifms-request-logs index

  • statusCode - Status code of Network response

  • jitEncRequest - Encrypted request which is sent to the JIT, we can not decrypt this request.

  • errorMsg - Error response which was received from JIT

  • encryptionRek - Encryption rek using which request is encrypted

  • decryptionRek - Contains decryption rek which helps to decrypt the JIT response

  • authToken - Auth token which request was sent to the JIT

  • sekString - sek which was received from the login

  • createdtime - The time when the request was sent to the JIT system

All other master data is configured inside the folder at a state level as well as a folder inside a ULB level.

ifms
ifms
19KB
ifms-adapter-v1.0.0.yml
Posting a PI
Checking PI status
Handling errors