# Program Service

## Overview

Program service handles all the financial transactions like sanction management, fund allocation, and disbursement of funds.

Users can establish programs within which these transactions take place. It receives messages from the adapter service, validates them and forwards them to digit-exchange for sending it to the IFMS system. In case of any validation failure, it responds with an error status and message. Additionally, the service maintains records of sanctioned, allocated, and available amounts for disbursement.

### Dependencies

* DIGIT Exchange
* MDMS Service
* IdGen Service

### Key Functionalities

* Creates Program for enabling further financial transactions.&#x20;
* Creates on-sanction when a sanction is received from the IFMS system. Maintains allocated and available amount for disbursal for a particular sanction. Forwards the sanction to the client-server.
* Creates on-allocation when allocations are received from the IFMS system. Updates the allocated and available amount for the given sanction. Forwards the allocation to the client-server.
* Creates disbursement, deducts available amount and forwards it to the IFMS for disbursement. On failure increases the available amount in sanction.

## Deployment

[Helm Charts](https://github.com/egovernments/DIGIT-DevOps/tree/74999d265513e7a1d19e75309bcd992639ba1624/deploy-as-code/helm/charts/ifix/domain-services/program-service)

## Integration

/program-service/

### API Spec

{% embed url="<https://editor.swagger.io/?url=https://raw.githubusercontent.com/egovernments/DIGIT-Specs/59f1f47d2e1e5f34b62a63790b4d35abdf05ef15/Domain%20Services/program-service.yaml>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digit.org/public-finance/setup/configuration/services/program-service.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
