DIGIT Public Finance Management
PlatformDomainsAcademyDesign SystemFeedback
v2.4
v2.4
  • 👋Introducing Public Finance Management (PFM)
    • Release Notes
      • Service Build Updates
      • MDMS & Configuration Updates
      • Test Cases
      • Data Migration
  • Understanding Public Finance
    • Public Finance Strategy & Approach
      • Approach Framework
    • Value Proposition
    • Potential Use Cases
  • Specifications
    • iFIX Specifications
      • Functional Specifications
  • Exemplars
    • PFM Implementations
      • Odisha
        • MUKTASoft
  • Technology
    • Design Approach
    • Tools
    • Architecture
      • High-Level Design
      • Low Level Design
        • DIGIT Exchange
        • Program Service
  • Setup
    • Install iFIX
      • Install Using GitHub Actions In AWS
    • Configuration
      • Configuring Master Data
      • Services
        • Program Service
        • DIGIT Exchange
        • MUKTA iFIX Adapter
    • Source Code
  • Community
    • Public Finance Blogs
      • Re-imagining Digital PFM in India
      • A Transformative Odyssey: The Impact of Smart Payments in Benefit Delivery
      • Why PFM Needs Fiscal Information Exchange Standards
      • News and Events
    • Ecosystem
      • Partner Engagement
    • Discussions
    • Issues
Powered by GitBook

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

On this page

Was this helpful?

  1. Technology
  2. Architecture
  3. Low Level Design

DIGIT Exchange

PreviousLow Level DesignNextProgram Service

Last updated 1 month ago

Was this helpful?

Overview

The DIGIT Exchange Service is a robust data interchange platform designed to facilitate the seamless and secure exchange of digital information between two endpoints. Built with a fixed schema for headers and dynamic messaging capabilities, this service ensures reliable communication while prioritizing data integrity and confidentiality.

Dependencies

DIGIT-exchange can implement any service if it has the same request structure as the program.

API Specifications

Base Path: /digit-exchange/

API Contract Link

API spec Click below to view it in Swagger Editor.

APIs

Exchange Flow

Data Model

DB Schema Diagram

Web Sequence Diagrams

Sequence of exchange between two environments

Exchange Service example of an exchange

Program Service
YAML is here.
  • Overview
  • Dependencies
  • API Specifications
  • API Contract Link
  • APIs
  • POST/digit-exchange/v1/exchange/{EXCHANGE_TYPE}
  • Exchange Flow
  • Data Model
  • DB Schema Diagram
  • Web Sequence Diagrams

/digit-exchange/v1/exchange/{EXCHANGE_TYPE}

post

Enables exchange of program, on-program, sanction, on-sanction etc

Body
signaturestringRequired

Signature of {header}+{message} body verified using sender's signing public key

Example: TgE1hcA2E+YPMdPGz4vveKQpR0x+pgzRTlet52qh63Kekr71vWWScXqaRFtQW64uRFZGBUhHYYZQ2y6LffwnNOOQhhssaThhqVBhXNEwX9i75SNYXi5XSJVDYzSyHrhF20HW6RE9mAVWdc80i7d+FXlh+b/U+fnj+SrZ2s6Xd0WUZvU29LgqeUpyznlWLu1mDdJxNZavsDLWmxjTnknqBjDvwSc35WhFDhXDA2lWmm8YpZ1Y6TBmvvtVS7mAOTnhFy9sdCbrLcfXk5QWIsdzlvPqlkvdwEf30OZ6ewb680Aj3hO2OT5LCv7iLyz7C7srnB9lJT5gXiw+eSnktPXlDA==
headerall ofRequired
and
messagestringRequiredExample: {"location_code":"pg.citya","name":"Test 1","start_date":0,"end_date":0,"client_host_url":"https://unified-dev.digit.org","function_code":"string","administration_code":"string","recipient_segment_code":"string","economic_segment_code":"string","source_of_fund_code":"string","target_segment_code":"string","currency_code":"string","locale_code":"string","status":{"status_code":"RECEIVED","status_message":"string"}}
Responses
401
HTTP layer error details
application/json
403
HTTP layer error details
application/json
500
HTTP layer error details
application/json
default
Acknowledgement of message received after successful validation of message and signature
application/json
post
POST /digit-exchange/v1/exchange/EXCHANGE_TYPE HTTP/1.1
Host: 
Content-Type: application/json
Accept: */*
Content-Length: 1106

{
  "signature": "TgE1hcA2E+YPMdPGz4vveKQpR0x+pgzRTlet52qh63Kekr71vWWScXqaRFtQW64uRFZGBUhHYYZQ2y6LffwnNOOQhhssaThhqVBhXNEwX9i75SNYXi5XSJVDYzSyHrhF20HW6RE9mAVWdc80i7d+FXlh+b/U+fnj+SrZ2s6Xd0WUZvU29LgqeUpyznlWLu1mDdJxNZavsDLWmxjTnknqBjDvwSc35WhFDhXDA2lWmm8YpZ1Y6TBmvvtVS7mAOTnhFy9sdCbrLcfXk5QWIsdzlvPqlkvdwEf30OZ6ewb680Aj3hO2OT5LCv7iLyz7C7srnB9lJT5gXiw+eSnktPXlDA==",
  "header": {
    "message_id": "123",
    "message_ts": "text",
    "action": "create",
    "sender_id": "program@https://spp.example.org",
    "sender_uri": "https://spp.example.org/{namespace}/callback/on-create",
    "receiver_id": "program@https://pymts.example.org",
    "is_msg_encrypted": true
  },
  "message": "{\"location_code\":\"pg.citya\",\"name\":\"Test 1\",\"start_date\":0,\"end_date\":0,\"client_host_url\":\"https://unified-dev.digit.org\",\"function_code\":\"string\",\"administration_code\":\"string\",\"recipient_segment_code\":\"string\",\"economic_segment_code\":\"string\",\"source_of_fund_code\":\"string\",\"target_segment_code\":\"string\",\"currency_code\":\"string\",\"locale_code\":\"string\",\"status\":{\"status_code\":\"RECEIVED\",\"status_message\":\"string\"}}"
}
{
  "errors": [
    {
      "code": "text",
      "message": "text"
    }
  ]
}
LogoSwagger Editor