Project

General

Profile

LICENSE WORKFLOW

Technical documentation
01/20/2025

Requirement Overview

This document outlines the license workflow within our software, providing a step-by-step guide to ensure a smooth implementation process.

Workflow of License (Manual)

1. Initialization :
First we need to register the clients’ company manually in the license software.

Access the License Portal:
Navigate to License Software Login https://license.imsnepal.com/signin/login
and log in with valid credentials.

Register a New Company:
  • Navigate to the Company Profiles section.
  • Select New Company if the client’s company is not yet registered.
Enter Company Details:
Fill in the following information accurately in the provided fields:
  • Company Details: Fill in the information as specified below.
  • Company Name: Enter the IRD registered company name.
  • Alias Name: Enter the brand name that the client uses.
  • Address: Enter the address mentioned in the IRD registered address.
  • VAT/PAN No.: Enter the client's PAN or VAT number.
  • Mobile No.: Enter the client's contact number.
  • Email: Enter the official email address of the client.
  • App Variant: Select the specific variant that client is going to use from the dropdown.
  • Branch License: Enter the number of branches the client requires.
  • Desktop License: Enter the number of desktop licenses if the client is a DotNet user.
  • Concurrent Users: Applicable for web users, enter the number of users based on the company or branch.
  • License Expiry Date: Select a future date for the license expiry.
  • Offline Billing Checkbox: Tick if the client is an offline billing user, allowing certain features like backdate entries in DotNet.
  • IRD Billing Approved Checkbox: If ticked, the client can print as many bills as needed; if unticked, the client is limited to a specific number of bills (demo).

Save Details:
Click on Save to store all the details in the database.

2. License Validation and Verification:
The system should call the GetClientId API to retrieve the client's unique ID whether the provided Company Name and VAT/PAN Number match the records registered in the license software.When calling this API, the PAN No./VAT No. and Company Name are mandatory fields, and their values must exactly match the values stored in the database.
  • Unmatched Scenario:
    • If the Company Name and VAT/PAN Number do not match, the system should display an appropriate message : "Your company is not registered in our system. Please contact the administrator."
    • The user is not permitted to proceed further.
  • Matched Scenario:
    • If the Company Name and VAT/PAN Number match, The system must also send the Branch ID with the request.
3. Branch Registration Check:
After successfully receiving the client ID, the system should call the GetClientLicense API.
  • If the Branch is Registered :
    • The user is allowed to proceed further in the system.
    • The system must also send the Branch ID with the request.
  • If the branch is not Registered ,
    • The system should prompt the user with a confirmation message: "The login user's division is not registered. Would you like to register for this division?"
    • If the user selects "OK" for the confirmation, the system should proceed to the next step.

4. Branch Registration via API :
The system should call the RegisterClientBranch API to register the branch.In this API call, the system must send additional details such as * Company ID, Branch Code and Branch Name* to the server for the Branch registration process The License Expiry date must be checked branch wise.

5. Fallback Mechanism:
  • During successful license validation, a Base64-encoded license file is stored in the `wwwroot/license` folder on the client system. This file includes essential data (ClientID, License Expiry Date, Number of Concurrent Users) and a timestamp for validating the license duration. When APIs are slow or unresponsive, this folder allows the system to validate the license seamlessly.
  • The locally stored license file ensures data security and allows the software to function smoothly without a connection to the license server.
  • Users must periodically reconnect to the license server; failure to do so within the specified timeframe blocks the login process.
6. Concurrent User Management
  • The system verifies active user sessions using an API.
  • Single Device Login:
    • If a user is logged in on one device, they are restricted from logging in on another.
    • Authorized personnel can log out active sessions on other devices.
  • Session Management:
    • A browser-specific cookie is generated for each login session.
    • A Redis server is used to manage sessions.
    • For offline users, Redis must be installed on the client’s device to enable web accounting and POS functionalities.
7. APIs Utilized
The following APIs are required for license implementation:
  • GetClientId
  • GetClientLicense
  • RegisterClientBranch

Files

clipboard-202501201716-fgcjl.png (59.2 KB) clipboard-202501201716-fgcjl.png Sumita Gurung, 01/20/2025 11:31 AM
clipboard-202501201717-9chef.png (121 KB) clipboard-202501201717-9chef.png Sumita Gurung, 01/20/2025 11:32 AM
clipboard-202501201718-zt4ul.png (60.4 KB) clipboard-202501201718-zt4ul.png Sumita Gurung, 01/20/2025 11:33 AM