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

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.

3.5. 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 division registration process.The License Expiry date must be checked branch wise.

4. Fallback Mechanism:
  • When APIs are slow or unresponsive, the system generates an encrypted, Base64-encoded license file in the wwwroot/license folder, containing all necessary data and a timestamp for validating license duration.
  • 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.

5. 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