Create Payment Instruction
Context
The integration with JIT start with the payment instruction. Hence the entity we create at MUKTASoft to push into JIT as Payment Instruction will also be called Payment Instruction.
Solution
Scope
Payment Instruction
Auto Generation
Actors
Employee
Role: System
Details
Payment instruction (PI) is the API to push the PI details into JIT.
For failed transactions, revised PI is generated and then pushed into JIT.
For each bill one PI is prepared and pushed into JIT.
PI is prepared and pushed with approval of Bill (Wage Bill, Purchase Bill, Supervision Bill).
To generate a PI, selection of HOA logic is given under configuration section.
For Request/ Response parameters, please refer the integration approach document.
The response data is stored and maintained at MUKTASoft for each PI and revised PI.
Once a PI is generated can be searched and viewed using search and view PI feature.
Selection of HOA
System performs a check to decide on the HOA, It picks a HOA first out of three HOAs and check for the fund available for all the sanction orders one by one and when found sufficient fund is available, create PI.
HOAs are scanned in the sequence given below. Sequence of HOA to be selected should be configurable.
SC Head
ST Head
General Head
API Request
# | Parameter | Is Mandatory? | Description |
2 | jitBillNo | Yes | Payment Instruction ID of the payment instruction created in MUKTASoft and then pushed to JIT. |
3 | jitBillDate | Yes | Payment Instruction date of the payment instruction created in MUKTASoft and then pushed to JIT. |
4 | jitBillDdoCode | Yes | The code of DDO from the configuration. |
5 | granteeAgCode | Yes | Grantee code from the configuration. |
6 | schemeCode | Yes | MUKTA scheme code |
7 | hoa | Yes | Head of account from which payment to be made. |
8 | ssuIaId | Yes | Special spending unit id from the configuration. |
9 | mstAllotmentDistId | Yes | Virtual allotment parent ID/sanction ID from which payment to be made. |
10 | billNetAmount | Yes | PI net amount of the payment instruction created in MUKTASoft and then pushed to JIT. |
11 | billGrossAmount | Yes | PI gross amount of the payment instruction created in MUKTASoft and then pushed to JIT. |
12 | billNumberOfBenf | Yes | The count of beneficiaries in the payment instruction. |
13 | purpose | Yes | Purpose is the reference text. E.g. Muster Roll ID etc. for which the payment instruction is created. |
| Beneficiary Details | Array | In a single request multiple beneficiaries can be added. |
14 | benefId | Yes | The beneficiary's Payment ID, unique for each beneficiary for its payment. Payment of the beneficiary is tracked by this throughout the payment processing. It is generated with the PI generation. |
15 | benefName | Yes | Beneficiary name maintained in MUKTASoft. |
16 | benfAcctNo | Yes | Beneficiary’s bank account number maintained in MUKTASoft. |
17 | ifscCode | Yes | IFSC of bank branch from beneficiary’s accounts details. |
18 | benfMobileNo | Yes | Beneficiary's mobile number maintained in MUKTASoft. |
19 | benfAddress | Yes | Beneficiary’s address maintained in MUKTASoft. |
20 | accountType | Yes | Account type of beneficiary’s account maintained in MUKTASoft |
21 | paymentAmount | Yes | Amount payable to beneficiary. |
22 | panNo | No | PAN of beneficiary |
23 | adhaarNumber | No | Aadhaar of beneficiary |
24 | purpose | Yes | Purpose is the reference text. E.g. Muster Roll ID etc. for which the bill is created. |
API Response
# | Parameter | Description |
1 | jitBillNo | Payment Instruction ID of the payment instruction created in MUKTASoft and then pushed to JIT. |
2 | jitBillDate | Payment Instruction date of the payment instruction created in MUKTASoft and then pushed to JIT. |
3 | ssuIaId | Special spending unit ID. A master value maintained in JIT-FS. |
4 | successCode | 0 - for successfully accepting the PI. |
7 | sucessDescrp | Jit Bill is received successfully ,Payment Instruction will be generated after Bill is submitted by SSU in JIT-FS |
No response
PI is created and saved at MUKTASoft.
Error message displayed on View Payment Instruction Page. [Message: On call of PI API: No response is received.]
PI status at MUKTASoft changes to Pending.
Beneficiary payment status update to “Payment Pending”.
Option to re-push the PI is provided, and the same time system will try to push all such PI once in a day at 9PM every day.
Response With Error
Error message is stored at MUKTASoft.
Error message displayed on View Payment Instruction Page. [Message: On call of PI API: <JIT error message>]
PI status at MUKTASoft updated/changes to Declined.
Beneficiary payment status updated to “Payment Pending”.
Option to re-push the PI is provided, necessary correction is made to encounter the error and PI is re-pushed.
Response Without Error
Success response is received and same is stored at MUKTASoft.
Info message displayed on View Payment Instruction Page. [Message: On call of PI API: Response is received and updated successfully]
PI status at the MUKTASoft changes to Initiated.
Beneficiary payment status changes to “Payment Initiated”.
An expense transaction is recorded under Fund Allocation Register.
API Call - Status - Payment Status - Actions Mapping
# | Response | PI Status (From) | PI Status (To) | Payment Status | User Action | API Call |
1 | No Response |
| Pending | Payment Pending | Resubmit | PI |
2 | Response with Error | Pending | Declined | Payment Pending | Resubmit | PI |
3 | Response Without Error | Pending/ Decline | Initiated | Payment Initiated | No Action |
|
Validations
Make sure DDO Code and SSUID are passed into requests as per the configuration. In case configuration is missing. [Message: DDO and SSUID configuration is missing.]
Make sure Net or Gross amount of Payment Instruction is not more than the total allotted amount for SSU a HOA and Sanctioned ID. [Message: Insufficient fund.]
Make sure the payment instruction ID is unique and no PI has already been pushed with same PI ID. [Message: Duplicate payment instruction ID.]
Make sure number of beneficiaries mentioned in the header should not mismatch with the actual details. [Message: Number of beneficiaries provided in header doesn’t match with the details.]
Make sure amount mentioned in the net amount should not mismatch with the total of all the beneficiaries amount. [Message: The total net amount provided in hear doesn’t match with total of all the beneficiaries.]
Make sure Gorss amount is either equal to or more than Net Amount and none of them can be zero. [Message: Gross amount can not be less than the net amount.]
Make sure at least one beneficiary is included in PI. [Message: Beneficiary detail is missing.]
Make sure total net amount is equal to sum of all the beneficiaries’ payment amount. [Message: The total net amount provided in header doesn’t match with total of all the beneficiaries.]
Make sure PI doesn’t have duplicate beneficiary. i.e. same a/c and ifsc cannot be repeated. [Message: There are 2 or more than 2 beneficiaries account number and IFSC are same.]
Beneficiaries original account no /IFSC/Bifid is not matching with correction file – Make sure parameter values passed are correct. [Message: The beneficiary <paymentid> was not present in the original payment instruction.]
Configurations
Master Data
Status are configured as master data.
PI Status
Pending
Declined
Initiated
Rejected
Approved
In Process
Completed
Payment Status - Beneficiary’s payment status.
Payment Pending
Payment Initiated
Payment In Process
Payment Successful
Payment Failed
Attachments
Not applicable.
Workflow
Not applicable.
Actions
Resubmit (*On View Payment Instruction)*
PI is re-constructed, availability of fund is checked and push and the response is updated back.
Scheduler: Same time a scheduler running every day at 10PM will try to push such PIs which are created with status Pending.
Notifications
Not applicable
ID Generation
PI ID is generated following the format given below.
PI-<ULBCODE>/FY/<6 digit running sequence number>. E.g. PI-DK/2022-23/000023.
The Six digit running sequence no. should be running for ULB wise.
It has to be reset to 1 with start of every financial year. i.e. on 01/04 00:00AM
Payment transaction ID is generated for each beneficiary, which is unique for the every transaction. There is not specific format.
User Interface
View Payment Instruction.
Acceptance Criteria
Make sure the the availability of fund is checked before pushing the payment instruction into JIT.
PI is generated for each and every bill and pushed to JIT with the approval of bill.
All the validations are taken care.
PI ID is generated as per the format defined.
If the PI is declined, the same PI can be modified and re-pushed.
The response is captured in MUKTASoft for debugging and error reporting.
Technical glitched in the integration are defined as error and captured.
System keep trying until a response is received. The latest response is recorded in the log.