Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Introduction

This document gives the required information for integrating a third party receipt / collections with the DIGIT Finance. In the situation wherein a state or city, there are various third applications been used along with DIGIT Finance,  and all the revenues need to be accounted to the Finance application, it is required to do a system to system integration.

High-Level Design

Finance system exposes a REST API to create the voucher which is authenticated. This API needs to be called after the creation of a collection receipt. This will push a voucher in the Finance system with relevant information like - source module, the amount collected, mode of collection and so on.

Low-Level Design

For the creation of a receipt voucher, one should call the  /rest/voucher/_create endpoint which is referred to in this contract. One receipt voucher is created in the Finance system in approved status for a receipt that is pushed. In order to make sure multiple vouchers are not created for any receipt, pass the reference number and billing service appropriately. There is another API /rest/voucher/_search to search for any voucher.

Collections can be made in - Cash, Cheque, DD, online. There are different chartofaccounts configured for each of these instruments. The third-party system will have to pass the correct account code while creating a voucher. DIGIT Finance will be the source of truth for chartofaccount code. This is applicable for all the masters that are required for a voucher, like- Fund, Function, Department and any other.

For Online collections, the money will be either directly debited to the bank or to a cash in transit account. Configuration needs to be done based on the state/city requirement.

Back update the source system for voucher reference if required.

Sample payload

https://hostname/services/EGF/rest/voucher/_create
{
"tenantId": "pb.jalandhar",
"RequestInfo": {
"apiId": null,
"ver": null,
"ts": null,
"action": null,
"did": null,
"key": null,
"msgId": null,
"authToken": "9ad4ab73-1df3-4b19-9aa5-9a7a9cddeb20",
"correlationId": null,
"userInfo": {
"id": 26273,
"userName": "TEST-13",
"name": "Atique",
"type": "EMPLOYEE",
"mobileNumber": null,
"emailId": null,
"roles": []
}
},
"vouchers": [
{
"id": null,
"name": "Revenue Grants",
"type": "Receipt",
"voucherNumber": null,
"description": "Revenue Grants Receipt",
"voucherDate": "27/04/2020",
"fund": {
"id": null,
"name": null,
"code": "01",
"identifier": null,
"level": null,
"parentId": null,
"isParent": null,
"active": null
},
"function": {
"id": null,
"name": null,
"code": "000201",
"level": null,
"active": null,
"isParent": null,
"parentId": null
},
"fiscalPeriod": null,
"status": null,
"originalVhId": null,
"refVhId": null,
"cgvn": null,
"moduleId": 10,
"department": "DEPT_25",
"source": "/services/collection/receipts/receipt-viewReceipts.action?selectedReceipts=f7ceea77-559a-4684-b18d-5de6b8ef8f7b",
"scheme": {
"id": null,
"code": null
},
"subScheme": null,
"functionary": {
"id": null,
"code": null
},
"fundsource": null,
"ledgers": [
{
"id": null,
"orderId": null,
"glcode": "1601001",
"debitAmount": 0,
"creditAmount": 1635,
"function": {
"id": null,
"name": null,
"code": "000201",
"level": null,
"active": null,
"isParent": null,
"parentId": null
},
"subledgerDetails": []
},
{
"id": null,
"orderId": null,
"glcode": "4501003",
"debitAmount": 1635,
"creditAmount": 0,
"function": {
"id": null,
"name": null,
"code": "000201",
"level": null,
"active": null,
"isParent": null,
"parentId": null
},
"subledgerDetails": []
}
],
"tenantId": "pb.jalandhar",
"referenceDocument": "f7ceea77-559a-4684-b18d-5de6b8ef8f7b",
"serviceName": "REV_GRANTS"
}
]
}
--------------------------------------------------------------------------------------------------------------------------
https://hostname/services/EGF/rest/voucher/_search
{
"tenantId": "pb.amritsar",
"RequestInfo": {
"apiId": "Mihy",
"ver": ".01",
"ts": null,
"action": "_update",
"did": "1",
"key": "",
"msgId": "20170310130900|en_IN",
"authToken": "ea51399b-7d31-4cc3-9d5a-c0c7a1ced490",
"correlationId": "7f3636d5-1e7d-45f6-9a8c-89b07524b7d7",
"userInfo": {
"id": 27492,
"userName": "9182541372",
"name": "lakshmi",
"type": "CITIZEN",
"mobileNumber": "9949565420",
"emailId": "fdfgg@gmail.com",
"roles": [
{
"id": null,
"name": "Citizen"
},
{
"id": null,
"name": "BPA Engineer"
},
{
"id": null,
"name": "BPA Architect"
}
]
}
},
"voucherNumbers": "1/BRV/00000103/05/2020-21, 1/BRV/00000103/06/2020-21"
}

Steps to configure

  • Make sure all the common masters that are used for voucher creation are in sync with the two systems.
  • If a city has a specific bank account to which the money needs to be accounted for online collection, configure the bank account in DIGIT Finance as well as in third-party application with the account code kept same.
  • Write a kafka consumer to post the voucher to DIGIT Finance when collection happens. Keeping the two asynchronous is better.
  • Create a new role for "Finance System Integrator" in DIGIT Finance.
  • Create a new user with type as "SYSTEM" and role as "Finance System Integrator".
  • Share the user credentials to the third-party system for them to pass it as part of the authentication key.


  • No labels